Hướng dẫn is time a float in python? - thời gian có phải là phao trong python không?

3

Show

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đã viết một chương trình để tính toán số giờ tôi đã làm việc nhưng cuối cùng, nó trả lại giá trị theo thời gian.

Vd: Tôi đã làm việc từ 11:45 đến 4:30. Chương trình của tôi trả về 4:45 Tôi muốn nó trả lại 4,75.

Làm cách nào để chuyển đổi cái này?

Tôi đang sử dụng mã sau:

import datetime as dt

from datetime import timedelta

start =(input("Enter start time: " ))
end =(input("Enter start time: " ))
start_dt = dt.datetime.strptime(start, '%H:%M')
end_dt = dt.datetime.strptime(end, '%H:%M')
time =(end_dt - start_dt)
if time.days < 0:
    time=timedelta(days=0,seconds=time.seconds,microseconds=time.microseconds)
    time= str(time)
    time2=dt.datetime.strptime(time, '%H:%M:%S') 
    off_set=dt.datetime.strptime('12:00:00', '%H:%M:%S')
    time= time2 - off_set 

print (time)

Hướng dẫn is time a float in python? - thời gian có phải là phao trong python không?

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges

Hỏi ngày 31 tháng 10 năm 2017 lúc 20:15Oct 31, 2017 at 20:15

5

Nếu bạn sử dụng DateTime, phương thức giờ và phút sẽ cung cấp cho bạn những gì bạn muốn

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335

Nếu bạn đang sử dụng TimeDelta (như trường hợp trong mã của bạn), bạn nên sử dụng:

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes

Đã trả lời ngày 31 tháng 10 năm 2017 lúc 20:18Oct 31, 2017 at 20:18

WngwngWNG

3.5552 Huy hiệu vàng21 Huy hiệu bạc29 Huy hiệu đồng2 gold badges21 silver badges29 bronze badges

0

Nếu bạn sử dụng DateTime thì tôi đề nghị:

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999

Đã trả lời ngày 16 tháng 5 năm 2020 lúc 9:20May 16, 2020 at 9:20

Karel Marikkarel MarikKarel Marik

6826 Huy hiệu bạc13 Huy hiệu Đồng6 silver badges13 bronze badges

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để làm sâu sắc thêm sự hiểu biết của bạn: Làm chủ mô-đun thời gian tích hợp của Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Mastering Python's Built-in time Module

Thời gian là loại nào trong Python?

Trong Python, ngày và thời gian không phải là một loại dữ liệu của riêng họ, nhưng một mô -đun có tên DateTime có thể được nhập để hoạt động với ngày cũng như thời gian. Mô -đun DateTime Python được tích hợp vào Python, do đó không cần phải cài đặt bên ngoài. Mô -đun Datetime Python cung cấp cho các lớp để làm việc theo ngày và giờ.

Thời gian () làm gì trong Python?

  • Hàm Time () trả về số giây trôi qua kể từ Epoch. Đối với hệ thống UNIX, ngày 1 tháng 1 năm 1970, 00:00:00 tại UTC là kỷ nguyên (điểm mà thời gian bắt đầu). core concepts at the heart of working with dates and times, such as epochs, time zones, and daylight savings time
  • Làm thế nào để bạn chuyển đổi thời gian để nổi trong Python? time in code using floats, tuples, and
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    6
  • Làm cách nào để chuyển đổi một ngày thành một chiếc phao trong Python ?. between different time representations
  • Từ DateTime Nhập DateTime .. thread execution
  • Thời gian nhập khẩu .. code performance using
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    7

DT = DateTime. bây giờ().

Dấu thời gian = Thời gian. Mktime (dt. Thời gian biểu ()) + dt. microsecond/1e6 ..

Thời gian là đơn vị nào ()?

Phương thức thời gian () Phương thức mô -đun thời gian được sử dụng để có thời gian tính bằng giây kể từ thời đại.

Mô -đun Python >> import datetime >> a = datetime.datetime.now() datetime.datetime(2020, 5, 16, 11, 13, 59, 543985) >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600 11.233206662499999 4 cung cấp nhiều cách thể hiện thời gian trong mã, chẳng hạn như đối tượng, số và chuỗi. Nó cũng cung cấp chức năng khác ngoài thời gian biểu diễn, như chờ đợi trong quá trình thực thi mã và đo lường hiệu quả của mã của bạn.

Bài viết này sẽ hướng dẫn bạn qua các chức năng và đối tượng được sử dụng phổ biến nhất trong

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4.

Đến cuối bài viết này, bạn sẽ có thể:

  • Hiểu các khái niệm cốt lõi ở trung tâm làm việc với ngày và thời gian, chẳng hạn như kỷ nguyên, múi giờ và thời gian tiết kiệm ánh sáng ban ngày
  • Biểu diễn thời gian trong mã bằng cách sử dụng phao, bộ dữ liệu và
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    6

Chuyển đổi giữa các biểu diễn thời gian khác nhauepoch.

Đình chỉ thực thi chủ đề

Đo lường hiệu suất mã bằng cách sử dụng

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
7

Bạn sẽ bắt đầu bằng cách tìm hiểu làm thế nào bạn có thể sử dụng một số điểm nổi để đại diện cho thời gian.

Xử lý thời gian Python bằng cách sử dụng vài giây

>>> 60 * 60 * 24
86400

Một trong những cách bạn có thể quản lý khái niệm về thời gian Python trong ứng dụng của bạn là bằng cách sử dụng số điểm nổi đại diện cho số giây đã trôi qua kể từ khi bắt đầu một kỷ nguyên, đó là, vì một điểm bắt đầu nhất định.

Ví dụ, bạn sẽ đại diện cho nửa đêm vào ngày 31 tháng 12 năm 1969 UTC (sử dụng một kỷ nguyên ngày 1 tháng 1 năm 1970) là

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
9 giây.

Mặc dù ngày 1 tháng 1 năm 1970 UTC là một kỷ nguyên phổ biến, nhưng nó không phải là kỷ nguyên duy nhất được sử dụng trong điện toán. Trong thực tế, các hệ điều hành khác nhau, hệ thống tập tin và API đôi khi sử dụng các kỷ nguyên khác nhau.

Như bạn đã thấy trước đây, UNIX Systems định nghĩa kỷ nguyên là ngày 1 tháng 1 năm 1970. Mặt khác, API Win32, định nghĩa kỷ nguyên là ngày 1 tháng 1 năm 1601.

Bạn có thể sử dụng

>>> 60 * 60 * 24
86400
0 để xác định hệ thống của bạn Epoch:

>>>

>>> import time
>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

Bạn sẽ tìm hiểu về

>>> 60 * 60 * 24
86400
1 và
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 trong suốt quá trình của bài viết này. Hiện tại, chỉ cần biết rằng bạn có thể sử dụng
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 để khám phá kỷ nguyên bằng cách sử dụng chức năng này.

Bây giờ bạn đã hiểu thêm về cách đo thời gian tính bằng vài giây bằng cách sử dụng một kỷ nguyên, hãy để Lôi xem mô -đun Python, ____34 để xem các chức năng mà nó cung cấp giúp bạn làm như vậy.

Thời gian Python tính bằng giây dưới dạng số điểm nổi

Đầu tiên,

>>> 60 * 60 * 24
86400
5 trả về số giây đã trôi qua kể từ kỷ nguyên. Giá trị trả về là số điểm nổi để tính toán cho các giây phân số:

>>>

>>> from time import time
>>> time()
1551143536.9323719

Bạn sẽ tìm hiểu về

>>> 60 * 60 * 24
86400
1 và
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 trong suốt quá trình của bài viết này. Hiện tại, chỉ cần biết rằng bạn có thể sử dụng
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 để khám phá kỷ nguyên bằng cách sử dụng chức năng này.

Bây giờ bạn đã hiểu thêm về cách đo thời gian tính bằng vài giây bằng cách sử dụng một kỷ nguyên, hãy để Lôi xem mô -đun Python, ____34 để xem các chức năng mà nó cung cấp giúp bạn làm như vậy.

  • Thời gian Python tính bằng giây dưới dạng số điểm nổi
  • Đầu tiên,
    >>> 60 * 60 * 24
    86400
    
    5 trả về số giây đã trôi qua kể từ kỷ nguyên. Giá trị trả về là số điểm nổi để tính toán cho các giây phân số:

Số bạn nhận được trên máy của bạn có thể rất khác vì điểm tham chiếu được coi là kỷ nguyên có thể rất khác nhau.

Đo thời gian tính bằng giây là hữu ích vì một số lý do:

Bạn có thể sử dụng một chiếc phao để tính toán sự khác biệt giữa hai điểm trong thời gian.

>>>

>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'

Bạn sẽ tìm hiểu về

>>> 60 * 60 * 24
86400
1 và
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 trong suốt quá trình của bài viết này. Hiện tại, chỉ cần biết rằng bạn có thể sử dụng
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 để khám phá kỷ nguyên bằng cách sử dụng chức năng này.

Bây giờ bạn đã hiểu thêm về cách đo thời gian tính bằng vài giây bằng cách sử dụng một kỷ nguyên, hãy để Lôi xem mô -đun Python, ____34 để xem các chức năng mà nó cung cấp giúp bạn làm như vậy.timestamp, returned by

>>> 60 * 60 * 24
86400
8 is formatted with the following structure:

  1. Thời gian Python tính bằng giây dưới dạng số điểm nổi
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    3 (
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    4)
  2. Đầu tiên,
    >>> 60 * 60 * 24
    86400
    
    5 trả về số giây đã trôi qua kể từ kỷ nguyên. Giá trị trả về là số điểm nổi để tính toán cho các giây phân số:
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    5 (
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    6)
  3. Số bạn nhận được trên máy của bạn có thể rất khác vì điểm tham chiếu được coi là kỷ nguyên có thể rất khác nhau.
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    7
  4. Đo thời gian tính bằng giây là hữu ích vì một số lý do:
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    8
  5. Bạn có thể sử dụng một chiếc phao để tính toán sự khác biệt giữa hai điểm trong thời gian.
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    9

Một chiếc phao dễ dàng có thể nối tiếp, có nghĩa là nó có thể được lưu trữ để truyền dữ liệu và xuất hiện nguyên vẹn ở phía bên kia.

Tuy nhiên, đôi khi, bạn có thể muốn thấy thời gian hiện tại được biểu diễn dưới dạng chuỗi. Để làm như vậy, bạn có thể chuyển số giây bạn nhận được từ

>>> 60 * 60 * 24
86400
6 vào
>>> 60 * 60 * 24
86400
7.

>>>

>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Tue Feb 26 12:11:59 2019'

Bạn sẽ tìm hiểu về

>>> 60 * 60 * 24
86400
1 và
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 trong suốt quá trình của bài viết này. Hiện tại, chỉ cần biết rằng bạn có thể sử dụng
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 để khám phá kỷ nguyên bằng cách sử dụng chức năng này.

Bây giờ bạn đã hiểu thêm về cách đo thời gian tính bằng vài giây bằng cách sử dụng một kỷ nguyên, hãy để Lôi xem mô -đun Python, ____34 để xem các chức năng mà nó cung cấp giúp bạn làm như vậy.

Thời gian Python tính bằng giây dưới dạng số điểm nổilocal time and makes use of a concept called time zones.

Đầu tiên,

>>> 60 * 60 * 24
86400
5 trả về số giây đã trôi qua kể từ kỷ nguyên. Giá trị trả về là số điểm nổi để tính toán cho các giây phân số:

Số bạn nhận được trên máy của bạn có thể rất khác vì điểm tham chiếu được coi là kỷ nguyên có thể rất khác nhau.

Đo thời gian tính bằng giây là hữu ích vì một số lý do:

Bạn có thể sử dụng một chiếc phao để tính toán sự khác biệt giữa hai điểm trong thời gian.

Một chiếc phao dễ dàng có thể nối tiếp, có nghĩa là nó có thể được lưu trữ để truyền dữ liệu và xuất hiện nguyên vẹn ở phía bên kia.

Tuy nhiên, đôi khi, bạn có thể muốn thấy thời gian hiện tại được biểu diễn dưới dạng chuỗi. Để làm như vậy, bạn có thể chuyển số giây bạn nhận được từ

>>> 60 * 60 * 24
86400
6 vào
>>> 60 * 60 * 24
86400
7.

Thời gian Python tính bằng giây như một chuỗi đại diện cho thời gian địa phương

Như bạn đã thấy trước đây, bạn có thể muốn chuyển đổi thời gian Python, được biểu thị dưới dạng số giây bị trôi qua kể từ kỷ nguyên, thành một chuỗi. Bạn có thể làm như vậy bằng cách sử dụng

>>> 60 * 60 * 24
86400
8:

Ở đây, bạn đã ghi lại thời gian hiện tại trong vài giây vào biến

>>> 60 * 60 * 24
86400
9, sau đó chuyển
>>> 60 * 60 * 24
86400
9 như một đối số cho
>>> 60 * 60 * 24
86400
8, trả về một biểu diễn chuỗi cùng thời gian đó.

  • Biểu diễn chuỗi của thời gian, còn được gọi là dấu thời gian, được trả về bởi
    >>> 60 * 60 * 24
    86400
    
    8 được định dạng với cấu trúc sau:
    >>> from time import time
    >>> time()
    1551143536.9323719
    
    5
  • Ngày trong tuần:
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    3 (
    >>> import time
    >>> time.gmtime(0)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    4)
    >>> from time import time
    >>> time()
    1551143536.9323719
    
    6

Tháng trong năm:

>>> import time
>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
5 (
>>> import time
>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
6)

Ngày của tháng:

>>> import time
>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
7

Thời gian tiết kiệm ánh sáng ban ngày

Những tháng mùa hè thường trải qua nhiều giờ ban ngày hơn những tháng mùa đông. Bởi vì điều này, một số khu vực quan sát thời gian tiết kiệm ánh sáng ban ngày (DST) trong mùa xuân và mùa hè để sử dụng tốt hơn những giờ ban ngày.

Đối với những nơi quan sát DST, đồng hồ của họ sẽ nhảy trước một giờ vào đầu mùa xuân (mất hiệu quả một giờ). Sau đó, vào mùa thu, đồng hồ sẽ được đặt lại theo thời gian tiêu chuẩn.

Các chữ cái S và D đại diện cho thời gian tiết kiệm thời gian và ánh sáng ban ngày trong ký hiệu múi giờ:

  • Giờ chuẩn trung tâm (CST)
  • Thời gian ban ngày ở Đông Úc (AEDT)

Khi bạn đại diện cho thời gian là dấu thời gian trong thời gian địa phương, điều quan trọng là phải xem xét liệu DST có được áp dụng hay không.

>>> 60 * 60 * 24
86400
8 Tài khoản cho thời gian tiết kiệm ánh sáng ban ngày. Vì vậy, sự khác biệt đầu ra được liệt kê trước đây sẽ chính xác hơn như sau:

  • Giờ chuẩn trung tâm (CST):
    >>> from time import time
    >>> time()
    1551143536.9323719
    
    5
    >>> from time import time
    >>> time()
    1551143536.9323719
    
    5
  • Thời gian ban ngày ở Đông Úc (AEDT):
    >>> from time import time
    >>> time()
    1551143536.9323719
    
    6
    >>> from time import time
    >>> time()
    1551143536.9323719
    
    6

Xử lý thời gian Python bằng cách sử dụng các cấu trúc dữ liệu

Bây giờ bạn đã nắm bắt được nhiều khái niệm cơ bản về thời gian bao gồm các kỷ nguyên, múi giờ và UTC, hãy để xem xét nhiều cách hơn để thể hiện thời gian bằng mô -đun Python

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4.

Thời gian python như một tuple

Thay vì sử dụng một số để biểu diễn thời gian Python, bạn có thể sử dụng một cấu trúc dữ liệu nguyên thủy khác: một tuple.

Tuple cho phép bạn quản lý thời gian dễ dàng hơn một chút bằng cách trừu tượng hóa một số dữ liệu và làm cho nó dễ đọc hơn.

Khi bạn đại diện cho thời gian dưới dạng một tuple, mỗi phần tử trong tuple của bạn tương ứng với một yếu tố cụ thể của thời gian:

  1. Năm
  2. Tháng là một số nguyên, trong khoảng từ 1 (tháng 1)
  3. Ngày trong tháng
  4. Giờ là một số nguyên, trong khoảng từ 0 (12 giờ sáng) đến 23 (11 giờ chiều)
  5. Phút
  6. Thứ hai
  7. Ngày trong tuần với tư cách là một số nguyên, trong khoảng từ 0 (Thứ Hai)
  8. Ngày trong năm
  9. Thời gian tiết kiệm ánh sáng ban ngày như một số nguyên với các giá trị sau:
    • >>> from time import time, ctime
      >>> t = time()
      >>> ctime(t)
      'Mon Feb 25 19:11:59 2019'
      
      1 là thời gian tiết kiệm ánh sáng ban ngày.
    • >>> from time import time, ctime
      >>> t = time()
      >>> ctime(t)
      'Mon Feb 25 19:11:59 2019'
      
      2 là thời gian tiêu chuẩn.
    • >>> from time import time, ctime
      >>> t = time()
      >>> ctime(t)
      'Mon Feb 25 19:11:59 2019'
      
      3 là không rõ.

Sử dụng các phương pháp mà bạn đã học, bạn có thể thể hiện cùng một thời gian Python theo hai cách khác nhau:

>>>

>>> from time import time, ctime
>>> t = time()
>>> t
1551186415.360564
>>> ctime(t)
'Tue Feb 26 07:06:55 2019'

>>> time_tuple = (2019, 2, 26, 7, 6, 55, 1, 57, 0)

Trong trường hợp này, cả

>>> 60 * 60 * 24
86400
9 và
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
5 đều thể hiện cùng một thời điểm, nhưng Tuple cung cấp một giao diện dễ đọc hơn để làm việc với các thành phần thời gian.

Mặc dù bộ tuple cung cấp một giao diện dễ quản lý hơn để làm việc với thời gian Python, nhưng có một đối tượng thậm chí còn tốt hơn:

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6.

Thời gian python như một đối tượng

Vấn đề với cấu trúc tuple là nó vẫn trông giống như một loạt các con số, mặc dù nó được tổ chức tốt hơn so với một số dựa trên một giây.

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 cung cấp một giải pháp cho việc này bằng cách sử dụng
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
8, từ mô -đun Python, ____ ____79, để liên kết chuỗi các số Tuple với các định danh hữu ích:

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
0

Trong trường hợp này, cả

>>> 60 * 60 * 24
86400
9 và
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
5 đều thể hiện cùng một thời điểm, nhưng Tuple cung cấp một giao diện dễ đọc hơn để làm việc với các thành phần thời gian.

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
1

Trong trường hợp này, cả

>>> 60 * 60 * 24
86400
9 và
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
5 đều thể hiện cùng một thời điểm, nhưng Tuple cung cấp một giao diện dễ đọc hơn để làm việc với các thành phần thời gian.

Mặc dù bộ tuple cung cấp một giao diện dễ quản lý hơn để làm việc với thời gian Python, nhưng có một đối tượng thậm chí còn tốt hơn: >> import datetime >> a = datetime.datetime.now() datetime.datetime(2020, 5, 16, 11, 13, 59, 543985) >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600 11.233206662499999 6.

Thời gian python như một đối tượng

Vấn đề với cấu trúc tuple là nó vẫn trông giống như một loạt các con số, mặc dù nó được tổ chức tốt hơn so với một số dựa trên một giây.

>> import datetime >> a = datetime.datetime.now() datetime.datetime(2020, 5, 16, 11, 13, 59, 543985) >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600 11.233206662499999 6 cung cấp một giải pháp cho việc này bằng cách sử dụng >>> from time import time, ctime >>> t = time() >>> ctime(t) 'Mon Feb 25 19:11:59 2019' 8, từ mô -đun Python, ____ ____79, để liên kết chuỗi các số Tuple với các định danh hữu ích:

Bây giờ, bạn có thể truy cập các yếu tố cụ thể của

>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Tue Feb 26 12:11:59 2019'
0 bằng cách sử dụng tên thuộc tính chứ không phải là một chỉ mục:

Ngoài khả năng đọc và khả năng sử dụng của

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, điều quan trọng là phải biết bởi vì đó là loại trả lại của nhiều chức năng trong mô -đun Python
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4.

Chuyển đổi thời gian python trong giây thành một đối tượng

  1. Bây giờ bạn đã thấy ba cách làm việc chính với thời gian Python, bạn sẽ học cách chuyển đổi giữa các loại dữ liệu thời gian khác nhau.
  2. Chuyển đổi giữa các loại dữ liệu thời gian phụ thuộc vào việc thời gian là thời gian của UTC hay địa phương.

Phối hợp Thời gian phổ quát (UTC)

Epoch sử dụng UTC cho định nghĩa của nó chứ không phải là múi giờ. Do đó, các giây trôi qua vì kỷ nguyên không thay đổi tùy thuộc vào vị trí địa lý của bạn.

>>>

>>> import time
>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

Trong trường hợp này, cả

>>> 60 * 60 * 24
86400
9 và
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
5 đều thể hiện cùng một thời điểm, nhưng Tuple cung cấp một giao diện dễ đọc hơn để làm việc với các thành phần thời gian.

Mặc dù bộ tuple cung cấp một giao diện dễ quản lý hơn để làm việc với thời gian Python, nhưng có một đối tượng thậm chí còn tốt hơn:

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6.

Thời gian python như một đối tượng

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
3

Trong trường hợp này, cả

>>> 60 * 60 * 24
86400
9 và
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
5 đều thể hiện cùng một thời điểm, nhưng Tuple cung cấp một giao diện dễ đọc hơn để làm việc với các thành phần thời gian.

Mặc dù bộ tuple cung cấp một giao diện dễ quản lý hơn để làm việc với thời gian Python, nhưng có một đối tượng thậm chí còn tốt hơn:

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6.

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
4

Thật thú vị, không có nghịch đảo cho chức năng này trong

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4. Thay vào đó, bạn sẽ phải xem trong mô -đun Python từ ____101 cho một hàm có tên
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
02:

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
5

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
02 có một tuple (hoặc
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, vì nó là một lớp con của tuple) và trả về số giây tương ứng kể từ thời đại.

Làm việc với UTC có giá trị trong lập trình vì nó là một tiêu chuẩn. Bạn không phải lo lắng về DST, múi giờ hoặc thông tin địa phương.

Điều đó nói rằng, có rất nhiều trường hợp khi bạn muốn sử dụng thời gian địa phương. Tiếp theo, bạn sẽ thấy cách chuyển đổi từ giây sang giờ địa phương để bạn có thể làm điều đó.

Giờ địa phương

Trong ứng dụng của bạn, bạn có thể cần phải làm việc với thời gian địa phương thay vì UTC. Mô -đun Python từ

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 cung cấp một chức năng để có được thời gian địa phương từ số giây đã trôi qua kể từ khi kỷ nguyên được gọi là
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06.

Chữ ký của

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 tương tự như
>>> 60 * 60 * 24
86400
1 ở chỗ nó có đối số
>>> from time import time, ctime
>>> t = time()
>>> t
1551186415.360564
>>> ctime(t)
'Tue Feb 26 07:06:55 2019'

>>> time_tuple = (2019, 2, 26, 7, 6, 55, 1, 57, 0)
7 tùy chọn mà nó sử dụng để xây dựng
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 bằng múi giờ địa phương của bạn:

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
6

Lưu ý rằng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
11. Vì DST có vấn đề với thời gian địa phương,
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
12 sẽ thay đổi giữa
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
2 và
>>> from time import time, ctime
>>> t = time()
>>> ctime(t)
'Mon Feb 25 19:11:59 2019'
1 tùy thuộc vào việc DST có áp dụng cho thời gian nhất định hay không. Kể từ
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
11, DST không được áp dụng cho ngày 1 tháng 3 năm 2019.

Tại Hoa Kỳ vào năm 2019, thời gian tiết kiệm ánh sáng ban ngày bắt đầu vào ngày 10 tháng 3. Vì vậy, để kiểm tra xem cờ DST sẽ thay đổi chính xác, bạn cần thêm 9 ngày trị giá vài giây vào đối số

>>> from time import time, ctime
>>> t = time()
>>> t
1551186415.360564
>>> ctime(t)
'Tue Feb 26 07:06:55 2019'

>>> time_tuple = (2019, 2, 26, 7, 6, 55, 1, 57, 0)
7.

Để tính toán điều này, bạn mất số giây trong một ngày (86.400) và nhân số đó với 9 ngày:

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
7

Bây giờ, bạn sẽ thấy rằng

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 cho thấy ngày là ngày 10 tháng 3 năm 2019 với
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
18. Ngoài ra, lưu ý rằng
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
19 cũng đã nhảy về phía trước, lên
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
20 thay vì
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
21 trong ví dụ trước, vì thời gian tiết kiệm ánh sáng ban ngày.

Kể từ Python 3.3,

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 cũng đã bao gồm hai thuộc tính hữu ích trong việc xác định múi giờ của
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6:

  1. >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    24
  2. >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    25

Lúc đầu, các thuộc tính này phụ thuộc vào nền tảng, nhưng chúng đã có sẵn trên tất cả các nền tảng kể từ Python 3.6.

Đầu tiên,

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
24 lưu trữ múi giờ địa phương:

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
8

Ở đây, bạn có thể thấy rằng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 với múi giờ được đặt thành
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
29 (giờ tiêu chuẩn trung tâm).

Như bạn đã thấy trước đây, bạn cũng có thể nói múi giờ dựa trên hai mẩu thông tin, bù UTC và DST (nếu có):

>>>

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
9

Trong trường hợp này, bạn có thể thấy rằng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
30 là
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
31 giây sau GMT, viết tắt của Greenwich. GMT là múi giờ không có bù UTC: UTC ± 00: 00.

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
31 giây chia cho giây mỗi giờ (3.600) có nghĩa là thời gian
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
30 là
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
34 (hoặc
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
35).

Bạn có thể sử dụng độ lệch GMT cộng với trạng thái DST để suy ra rằng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
30 là
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
35 vào thời điểm tiêu chuẩn, tương ứng với múi giờ tiêu chuẩn trung tâm.

Giống như

>>> 60 * 60 * 24
86400
1, bạn có thể bỏ qua đối số
>>> from time import time, ctime
>>> t = time()
>>> t
1551186415.360564
>>> ctime(t)
'Tue Feb 26 07:06:55 2019'

>>> time_tuple = (2019, 2, 26, 7, 6, 55, 1, 57, 0)
7 khi gọi
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 và nó sẽ trả lại thời gian địa phương hiện tại trong một
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6:

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
0

Không giống như

>>> 60 * 60 * 24
86400
1, hàm nghịch đảo của
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 tồn tại trong mô -đun Python
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4. Hãy cùng xem cách hoạt động của nó.

Chuyển đổi một đối tượng thời gian địa phương thành giây

Bạn đã thấy cách chuyển đổi đối tượng thời gian UTC thành giây bằng cách sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
45. Để chuyển đổi thời gian địa phương thành vài giây, bạn sẽ sử dụng
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
46.

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
46 yêu cầu bạn vượt qua một tham số gọi là
>>> 60 * 60 * 24
86400
9 có dạng đối tượng 9-Tuple hoặc
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 bình thường đại diện cho thời gian địa phương:

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
1

Điều quan trọng là phải nhớ rằng

>>> 60 * 60 * 24
86400
9 phải là một tuple đại diện cho thời gian địa phương, không phải UTC:

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
2

Ví dụ này cho thấy lý do tại sao nó rất quan trọng để sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
46 với thời gian địa phương, thay vì UTC:

  1. >>> 60 * 60 * 24
    86400
    
    1 không có đối số trả về
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    6 bằng UTC.
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    54 cho thấy
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    55. Điều này là chính xác vì
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    56, vì vậy UTC phải vượt quá 6 giờ so với thời gian địa phương.
    with no argument returns a
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    6 using UTC.
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    54 shows
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    55. This is accurate because
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    56, so UTC should be 6 hours ahead of local time.

  2. >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    46 cố gắng trả lại số giây, mong đợi giờ địa phương, nhưng bạn đã vượt qua
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    54 thay thế. Vì vậy, thay vì hiểu rằng
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    54 là thời gian UTC, nó giả định rằng bạn có nghĩa là
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    60.
    tries to return the number of seconds, expecting local time, but you passed
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    54 instead. So, instead of understanding that
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    54 is UTC time, it assumes you meant
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    60.

  3. >>> 60 * 60 * 24
    86400
    
    1 sau đó được sử dụng để chuyển đổi các giây đó trở lại thành UTC, dẫn đến sự không nhất quán. Thời gian bây giờ là
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    62. Lý do cho sự khác biệt này là thực tế là
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    46 dự kiến ​​thời gian địa phương. Vì vậy, việc chuyển đổi trở lại UTC thêm 6 giờ nữa vào giờ địa phương.
    is then used to convert those seconds back into UTC, which results in an inconsistency. The time is now
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    62. The reason for this discrepancy is the fact that
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    46 expected local time. So, the conversion back to UTC adds another 6 hours to local time.

Làm việc với các múi giờ nổi tiếng là khó khăn, vì vậy, điều quan trọng là phải tự mình thành công bằng cách hiểu sự khác biệt giữa UTC và thời gian địa phương và các chức năng thời gian Python đối phó với từng loại.

Chuyển đổi một đối tượng thời gian python thành một chuỗi

Mặc dù làm việc với Tuples là niềm vui và tất cả, đôi khi nó tốt nhất để làm việc với các chuỗi.

Các biểu diễn chuỗi thời gian, còn được gọi là dấu thời gian, giúp giúp thời gian dễ đọc hơn và có thể đặc biệt hữu ích để xây dựng giao diện người dùng trực quan.

Có hai hàm Python

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 mà bạn sử dụng để chuyển đổi đối tượng
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
65 thành chuỗi:

  1. >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    66
  2. >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    67

Bạn sẽ bắt đầu bằng cách tìm hiểu về

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66.

>>>a=datetime.datetime.now().time() >>>a datetime.time(21, 17, 35, 562000) >>>a.hour+a.minute/60.0 21.283333333333335 66

Bạn sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi thời gian tuple hoặc
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian:

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
3

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

Như với

>>> 60 * 60 * 24
86400
8, tham số cho
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 là tùy chọn. Nếu bạn không chuyển đối tượng thời gian cho
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66, thì nó sẽ sử dụng thời gian địa phương hiện tại:

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
4

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

>>>a=datetime.datetime.now().time() >>>a datetime.time(21, 17, 35, 562000) >>>a.hour+a.minute/60.0 21.283333333333335 67

Như với

>>> 60 * 60 * 24
86400
8, tham số cho
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 là tùy chọn. Nếu bạn không chuyển đối tượng thời gian cho
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66, thì nó sẽ sử dụng thời gian địa phương hiện tại:

Như với

>>> 60 * 60 * 24
86400
8, nó cũng bỏ qua thông tin địa phương.

Một trong những nhược điểm lớn nhất của

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 là tính không linh hoạt định dạng của nó.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
67 giải quyết vấn đề này bằng cách cho phép bạn định dạng dấu thời gian của mình.format time.”

Bạn có thể thấy mình ở vị trí mà định dạng chuỗi từ

>>> 60 * 60 * 24
86400
8 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 không thỏa đáng cho ứng dụng của bạn. Thay vào đó, bạn có thể muốn định dạng các chuỗi của mình theo cách mà người dùng có ý nghĩa hơn đối với người dùng của bạn.

  1. Một ví dụ về điều này là nếu bạn muốn hiển thị thời gian của mình trong một chuỗi có tính đến thông tin địa phương. specifies the order and form of the time elements in your string.
  2. Để định dạng chuỗi, được cung cấp một bộ
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    6 hoặc Python, bạn sử dụng
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    67, là viết tắt của thời gian định dạng chuỗi chuỗi.
    is an optional time tuple.

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
67 có hai đối số:directives. Directives are character sequences that begin with a
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
93 that specify a particular time element, such as:

  • >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    91 Chỉ định thứ tự và dạng của các phần tử thời gian trong chuỗi của bạn.
    Day of the month
  • >>> 60 * 60 * 24
    86400
    
    9 là một tuple thời gian tùy chọn.
    Month of the year
  • Để định dạng một chuỗi, bạn sử dụng các chỉ thị. Các chỉ thị là các chuỗi ký tự bắt đầu bằng một
    >>>a=datetime.datetime.now().time()
    >>>a
    datetime.time(21, 17, 35, 562000) 
    >>>a.hour+a.minute/60.0
    21.283333333333335
    
    93 chỉ định một yếu tố thời gian cụ thể, chẳng hạn như:
    Year

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
94: Ngày trong tháng

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
5

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
6

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
7

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
8

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

Như với >>> 60 * 60 * 24 86400 8, tham số cho >>>a=datetime.datetime.now().time() >>>a datetime.time(21, 17, 35, 562000) >>>a.hour+a.minute/60.0 21.283333333333335 66 là tùy chọn. Nếu bạn không chuyển đối tượng thời gian cho >>>a=datetime.datetime.now().time() >>>a datetime.time(21, 17, 35, 562000) >>>a.hour+a.minute/60.0 21.283333333333335 66, thì nó sẽ sử dụng thời gian địa phương hiện tại:

Như với

>>> 60 * 60 * 24
86400
8, nó cũng bỏ qua thông tin địa phương.

Một trong những nhược điểm lớn nhất của

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 là tính không linh hoạt định dạng của nó.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
67 giải quyết vấn đề này bằng cách cho phép bạn định dạng dấu thời gian của mình.parse time”:

>>>

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
9

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

>>>

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
0

Cả

>>> 60 * 60 * 24
86400
1 và
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
06 trả về
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6, cho UTC và thời gian địa phương tương ứng.

Bạn có thể sử dụng

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 để chuyển đổi
>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6 thành dấu thời gian.
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 hoạt động tương tự như
>>> 60 * 60 * 24
86400
8, mà bạn đã tìm hiểu trước đó trong bài viết này, ngoại trừ thay vì chuyển số điểm nổi, bạn vượt qua một tuple. Ngay cả định dạng dấu thời gian cũng giống nhau giữa hai hàm.

Như với

>>> 60 * 60 * 24
86400
8, tham số cho
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66 là tùy chọn. Nếu bạn không chuyển đối tượng thời gian cho
>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
66, thì nó sẽ sử dụng thời gian địa phương hiện tại:

Đình chỉ thực thi

Một hàm thời gian Python thực sự hữu ích là

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22, đình chỉ thực thi chủ đề trong một khoảng thời gian cụ thể.

Ví dụ: bạn có thể tạm dừng việc thực hiện chương trình của bạn trong 10 giây như thế này:

>>>

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
1

Chương trình của bạn sẽ in chuỗi

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
23 được định dạng đầu tiên, sau đó tạm dừng trong 10 giây và cuối cùng in chuỗi
mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
23 được định dạng thứ hai.

Bạn cũng có thể chuyển các giây phân số thành

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22:

>>>

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
2

Chương trình của bạn sẽ in chuỗi

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
23 được định dạng đầu tiên, sau đó tạm dừng trong 10 giây và cuối cùng in chuỗi
mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
23 được định dạng thứ hai.

Bạn cũng có thể chuyển các giây phân số thành

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22:

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22 rất hữu ích để kiểm tra hoặc làm cho chương trình của bạn chờ đợi bất kỳ lý do nào, nhưng bạn phải cẩn thận để không tạm dừng mã sản xuất của mình trừ khi bạn có lý do chính đáng để làm như vậy.

Trước Python 3.5, một tín hiệu được gửi đến quy trình của bạn có thể làm gián đoạn mytimedelta = atime - anothertime secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds minutes = ((secs/60)%60)/60.0 hours = secs/3600 print hours + minutes 22. Tuy nhiên, trong 3,5 trở lên, mytimedelta = atime - anothertime secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds minutes = ((secs/60)%60)/60.0 hours = secs/3600 print hours + minutes 22 sẽ luôn tạm dừng thực thi ít nhất là lượng thời gian được chỉ định, ngay cả khi quá trình nhận được tín hiệu.

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22 chỉ là một hàm thời gian Python có thể giúp bạn kiểm tra các chương trình của mình và làm cho chúng mạnh mẽ hơn.

Đo lường hiệu suất

Bạn có thể sử dụng

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
4 để đo lường hiệu suất của chương trình.

>>>

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
3

Chương trình của bạn sẽ in chuỗi

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
23 được định dạng đầu tiên, sau đó tạm dừng trong 10 giây và cuối cùng in chuỗi
mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
23 được định dạng thứ hai.

Bạn cũng có thể chuyển các giây phân số thành

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22:

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22 rất hữu ích để kiểm tra hoặc làm cho chương trình của bạn chờ đợi bất kỳ lý do nào, nhưng bạn phải cẩn thận để không tạm dừng mã sản xuất của mình trừ khi bạn có lý do chính đáng để làm như vậy.

Trước Python 3.5, một tín hiệu được gửi đến quy trình của bạn có thể làm gián đoạn mytimedelta = atime - anothertime secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds minutes = ((secs/60)%60)/60.0 hours = secs/3600 print hours + minutes 22. Tuy nhiên, trong 3,5 trở lên, mytimedelta = atime - anothertime secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds minutes = ((secs/60)%60)/60.0 hours = secs/3600 print hours + minutes 22 sẽ luôn tạm dừng thực thi ít nhất là lượng thời gian được chỉ định, ngay cả khi quá trình nhận được tín hiệu.

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
22 chỉ là một hàm thời gian Python có thể giúp bạn kiểm tra các chương trình của mình và làm cho chúng mạnh mẽ hơn.

Đo lường hiệu suất

  • Bạn có thể sử dụng
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    4 để đo lường hiệu suất của chương trình.
  • Cách bạn làm điều này là sử dụng
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    7, như tên cho thấy, cung cấp một bộ đếm hiệu suất với độ phân giải cao để đo khoảng cách ngắn thời gian.
  • Để sử dụng
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    7, bạn đặt bộ đếm trước khi mã của bạn bắt đầu thực thi cũng như sau khi quá trình thực thi mã của bạn hoàn thành:
  • Đầu tiên,
    mytimedelta = atime - anothertime
    secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
    minutes = ((secs/60)%60)/60.0
    hours = secs/3600
    print hours + minutes
    
    33 ghi lại khoảnh khắc trước khi bạn gọi chức năng.
    mytimedelta = atime - anothertime
    secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
    minutes = ((secs/60)%60)/60.0
    hours = secs/3600
    print hours + minutes
    
    34 nắm bắt thời điểm sau khi chức năng trở lại. Tổng thời gian thực hiện của chức năng mất
    mytimedelta = atime - anothertime
    secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
    minutes = ((secs/60)%60)/60.0
    hours = secs/3600
    print hours + minutes
    
    35 giây.
  • >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    7 (hoặc
    mytimedelta = atime - anothertime
    secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
    minutes = ((secs/60)%60)/60.0
    hours = secs/3600
    print hours + minutes
    
    37) là cách chính xác nhất để đo hiệu suất của mã của bạn bằng cách sử dụng một lần thực thi. Tuy nhiên, nếu bạn đang cố gắng đánh giá chính xác hiệu suất của đoạn mã, tôi khuyên bạn nên sử dụng mô -đun Python
    mytimedelta = atime - anothertime
    secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
    minutes = ((secs/60)%60)/60.0
    hours = secs/3600
    print hours + minutes
    
    38.

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes
38 Chuyên về việc chạy mã nhiều lần để có được phân tích hiệu suất chính xác hơn và giúp bạn tránh quá mức đo lường thời gian của bạn cũng như các cạm bẫy phổ biến khác.

  • Sự kết luận
  • Xin chúc mừng! Bây giờ bạn có một nền tảng tuyệt vời để làm việc với ngày và giờ ở Python.
  • Bây giờ, bạn có thể:
  • Sử dụng số điểm nổi, biểu thị vài giây đã trôi qua kể từ kỷ nguyên, để đối phó với thời gian

Quản lý thời gian bằng cách sử dụng các đối tượng Tuples và

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999
6

Chuyển đổi giữa các giây, bộ dữ liệu và chuỗi dấu thời gian

Đình chỉ việc thực hiện một luồng python

  • Đo lường hiệu suất bằng cách sử dụng
    >> import datetime
    >> a = datetime.datetime.now()
    datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
    >> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
    11.233206662499999
    
    7
    A more robust date and time module in Python’s standard library
  • Trên hết, bạn đã học được một số khái niệm cơ bản xung quanh ngày và giờ, chẳng hạn như: A module for measuring the performance of code snippets
  • Kỷ nguyên Higher precision datetimes used in astronomy

UTC This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Mastering Python's Built-in time Module

Thời gian là loại nào trong Python?

Trong Python, ngày và thời gian không phải là một loại dữ liệu của riêng họ, nhưng một mô -đun có tên DateTime có thể được nhập để hoạt động với ngày cũng như thời gian.Mô -đun DateTime Python được tích hợp vào Python, do đó không cần phải cài đặt bên ngoài.Mô -đun Datetime Python cung cấp cho các lớp để làm việc theo ngày và giờ.date and time are not a data type of their own, but a module named datetime can be imported to work with the date as well as time. Python Datetime module comes built into Python, so there is no need to install it externally. Python Datetime module supplies classes to work with date and time.

Thời gian () làm gì trong Python?

Hàm Time () trả về số giây trôi qua kể từ Epoch.Đối với hệ thống UNIX, ngày 1 tháng 1 năm 1970, 00:00:00 tại UTC là kỷ nguyên (điểm mà thời gian bắt đầu).returns the number of seconds passed since epoch. For Unix system, January 1, 1970, 00:00:00 at UTC is epoch (the point where time begins).

Làm thế nào để bạn chuyển đổi thời gian để nổi trong Python?

Làm cách nào để chuyển đổi một ngày thành một chiếc phao trong Python ?..
Từ DateTime Nhập DateTime ..
Thời gian nhập khẩu ..
DT = DateTime.bây giờ().
Dấu thời gian = Thời gian.Mktime (dt. Thời gian biểu ()) + dt.microsecond/1e6 ..

Thời gian là đơn vị nào ()?

Phương thức thời gian () Phương thức mô -đun thời gian được sử dụng để có thời gian tính bằng giây kể từ thời đại.seconds since epoch.