Hướng dẫn python stopwatch milliseconds - đồng hồ bấm giờ trăn mili giây

Mã của bạn không theo dõi bất kỳ mili giây nào. Bạn sleep(1) - sẽ ngủ ít nhất 1000ms (có thể nhiều hơn - xem ở đây - nó phụ thuộc vào những gì đang diễn ra trên PC khác của bạn).

Để hiển thị bất kỳ MS nào, bạn cần nắm bắt thời gian hiện tại bằng cách nào đó:

from datetime import datetime, timedelta
import time

def countdown(seconds):
    started = datetime.now()
    ended = started + timedelta(seconds=seconds)
    while datetime.now() < ended:
        print(f"Waiting for {ended-datetime.now()}", flush=True)
        time.sleep(1)

    now = datetime.now()
    if now > ended:
        print(f'Sorry, I overslept: {now-ended}')

    print('Fire in the hole!!')


# input time in seconds
t ="4"

# function call
countdown(int(t))

Để nhận:

Waiting for 0:00:04
Waiting for 0:00:02.995686
Waiting for 0:00:01.995361
Waiting for 0:00:00.980077
Sorry, I overslept: 0:00:00.020248
Fire in the hole!!

Bạn có thể định dạng thời gian cho triệu tập của mình - nhiều giải pháp hơn cho F.E. Ở đây: Định dạng các đối tượng Timedelta.

Ngủ trong một thời gian tính toán như

while datetime.now() < ended:
    remainder = ended-datetime.now()
    print(f"Waiting for {remainder}", flush=True)
    time.sleep(min(1, ( ended-datetime.now()).total_seconds()))

Có thể cố gắng giảm thiểu thời gian ngủ quá mức của bạn trên vòng lặp cuối cùng. Bạn cũng có thể cố gắng làm điều này cho mọi vòng lặp bằng cách tính toán những gì bạn cần ngủ nếu cần độ chính xác 1S tốt hơn.

Nhưng cuối cùng, các vòng lặp của bạn vẫn có thể tắt do các yếu tố bạn không thể ảnh hưởng.


Trong bài viết này, chúng tôi sẽ thảo luận về cách khác nhau để lấy lại thời gian hiện tại tính bằng mili giây ở Python.

Sử dụng phương thức thời gian.time ()

Mô -đun thời gian trong Python cung cấp các phương pháp và chức năng khác nhau liên quan đến thời gian. Ở đây chúng tôi sử dụng phương thức Time.time () để có thời gian CPU hiện tại tính bằng giây. Thời gian được tính toán từ thời đại. Nó trả về một số điểm nổi được thể hiện bằng giây. Và sau đó, giá trị này được nhân với 1000 và làm tròn với hàm vòng (). round() function. round() function.

Lưu ý: Epoch là điểm khởi đầu của thời gian và phụ thuộc vào nền tảng. Epoch là ngày 1 tháng 1 năm 1970, 00:00:00 (UTC) trên các hệ thống Windows và hầu hết các hệ thống UNIX và các giây nhảy không được bao gồm trong thời gian tính bằng giây kể từ kỷ nguyên.: Epoch is the starting point of time and is platform-dependent. The epoch is January 1, 1970, 00:00:00 (UTC) on Windows and most Unix systems, and leap seconds are not included in the time in seconds since the epoch.: Epoch is the starting point of time and is platform-dependent. The epoch is January 1, 1970, 00:00:00 (UTC) on Windows and most Unix systems, and leap seconds are not included in the time in seconds since the epoch.

Chúng tôi sử dụng Time.gmtime (0) để có được kỷ nguyên trên một nền tảng nhất định.

Cú pháp

Phương thức cú pháp của thời gian () như sau -time() method is as follows −time() method is as follows −

time.time()

Trả về một giá trị nổi đại diện cho giây kể từ thời đại.

Thí dụ

Trong mã ví dụ sau, chúng tôi sử dụng phương thức Time.time () để có thời gian hiện tại tính bằng giây. Sau đó, chúng tôi nhiều với 1000 và chúng tôi xấp xỉ giá trị bằng cách sử dụng hàm vòng ().

import time obj = time.gmtime(0) epoch = time.asctime(obj) print("The epoch is:",epoch) curr_time = round(time.time()*1000) print("Milliseconds since epoch:",curr_time)

Đầu ra

Đầu ra của mã trên như sau;

The epoch is: Thu Jan  1 00:00:00 1970
Milliseconds since epoch: 1662372570512

Sử dụng mô -đun DateTime

Ở đây chúng tôi sử dụng các chức năng khác nhau được cung cấp bởi mô -đun DateTime để tìm thời gian hiện tại tính bằng mili giây.

Ban đầu, chúng tôi lấy lại ngày hiện tại bằng cách sử dụng phương thức DateTime.utc (). Sau đó, chúng tôi nhận được số ngày kể từ kỷ nguyên bằng cách trừ ngày 01-01-1670 (DateTime (1970, 1, 1)) từ ngày hiện tại. Trong ngày này, chúng tôi áp dụng .total_seconds () trả về tổng số giây kể từ thời đại. Cuối cùng, chúng tôi làm tròn giá trị thành mili giây bằng cách áp dụng hàm vòng ().

Thí dụ

Trong mã ví dụ sau, chúng tôi sử dụng phương thức Time.time () để có thời gian hiện tại tính bằng giây. Sau đó, chúng tôi nhiều với 1000 và chúng tôi xấp xỉ giá trị bằng cách sử dụng hàm vòng ().

from datetime import datetime print("Current date:",datetime.utcnow()) date= datetime.utcnow() - datetime(1970, 1, 1) print("Number of days since epoch:",date) seconds =(date.total_seconds()) milliseconds = round(seconds*1000) print("Milliseconds since epoch:",milliseconds)

Đầu ra

Đầu ra của mã trên như sau;

Current date: 2022-09-05 10:10:17.745855
Number of days since epoch: 19240 days, 10:10:17.745867
Milliseconds since epoch: 1662372617746

Hướng dẫn python stopwatch milliseconds - đồng hồ bấm giờ trăn mili giây

Sử dụng mô -đun DateTime

  • Ở đây chúng tôi sử dụng các chức năng khác nhau được cung cấp bởi mô -đun DateTime để tìm thời gian hiện tại tính bằng mili giây.
  • Ban đầu, chúng tôi lấy lại ngày hiện tại bằng cách sử dụng phương thức DateTime.utc (). Sau đó, chúng tôi nhận được số ngày kể từ kỷ nguyên bằng cách trừ ngày 01-01-1670 (DateTime (1970, 1, 1)) từ ngày hiện tại. Trong ngày này, chúng tôi áp dụng .total_seconds () trả về tổng số giây kể từ thời đại. Cuối cùng, chúng tôi làm tròn giá trị thành mili giây bằng cách áp dụng hàm vòng ().
  • Trong mã ví dụ sau, chúng tôi có thời gian hiện tại tính bằng mili giây bằng cách sử dụng các chức năng khác nhau được cung cấp bởi mô -đun DateTime Python.
  • Đầu ra của mã ví dụ trên như sau;
  • Cập nhật vào ngày 08 tháng 9 năm 2022 07:04:57
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để có được ngày và giờ hiện tại trong Python?
  • Có thời gian tính bằng mili giây bằng lịch Java
  • Làm thế nào để có thời gian tính bằng mili giây bằng C ++ trên Linux?
  • Làm thế nào để có thời gian tính bằng mili giây cho ngày và thời gian nhất định ở Java?
  • Làm thế nào để có được thời gian hiện tại trong Java 8?
  • Làm thế nào để có được thời gian tính bằng mili giây kể từ thời đại Unix trong JavaScript?
  • Làm thế nào để tiết kiệm thời gian tính bằng mili giây trong mysql?
  • Chương trình Java để có được mili giây giữa hai lần thời gian
  • Làm thế nào để có được thời gian và ngày hiện tại trong C ++?
  • Làm thế nào để có được ngày và giờ hiện tại trong JavaScript?