Làm thế nào để tôi có được thời gian hiện tại trong Python?
Mô -đun >>> time.time[]
1424233311.771502
1
>>> time.time[]
1424233311.771502
Mô -đun
>>> time.time[]
1424233311.771502
1 cung cấp các chức năng cho chúng ta biết thời gian trong "giây kể từ thời đại" cũng như các tiện ích khác.import time
Thời gian Epoch UNIX
Đây là định dạng bạn nên có dấu thời gian để lưu trong cơ sở dữ liệu. Nó là một số điểm nổi đơn giản có thể được chuyển đổi thành một số nguyên. Nó cũng tốt cho số học trong vài giây, vì nó đại diện cho số giây kể từ ngày 1 tháng 1 năm 1970, 00:00:00, và đó là ánh sáng bộ nhớ so với các biểu diễn khác của thời gian chúng ta sẽ xem xét tiếp theo:
>>> time.time[]
1424233311.771502
Dấu thời gian này không giải thích cho các bước nhảy vọt, vì vậy nó không phải là tuyến tính - những giây nhảy bị bỏ qua. Vì vậy, mặc dù nó không tương đương với tiêu chuẩn UTC quốc tế, nhưng nó rất gần, và do đó khá tốt cho hầu hết các trường hợp lưu giữ hồ sơ.
Điều này không lý tưởng cho lịch trình của con người, tuy nhiên. Nếu bạn có một sự kiện trong tương lai mà bạn muốn diễn ra tại một thời điểm nhất định, bạn sẽ muốn lưu trữ thời gian đó bằng một chuỗi có thể được phân tích cú pháp vào đối tượng
>>> time.time[]
1424233311.771502
3 hoặc đối tượng >>> time.time[]
1424233311.771502
3 được nối tiếp [chúng sẽ được mô tả sau].>>> time.time[]
1424233311.771502
5
>>> time.time[]
1424233311.771502
Bạn cũng có thể thể hiện thời gian hiện tại theo cách được ưu tiên bởi hệ điều hành của bạn [điều đó có nghĩa là nó có thể thay đổi khi bạn thay đổi tùy chọn hệ thống của mình, vì vậy đừng dựa vào điều này để trở thành tiêu chuẩn trên tất cả các hệ thống, như tôi đã thấy những người khác mong đợi] . Điều này thường là thân thiện với người dùng, nhưng thường không dẫn đến các chuỗi người ta có thể sắp xếp theo trình tự thời gian:
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
Bạn cũng có thể hydrat hóa dấu thời gian thành dạng người có thể đọc được với
>>> time.time[]
1424233311.771502
6:>>> time.ctime[1424233311.771502]
'Tue Feb 17 23:21:51 2015'
Chuyển đổi này cũng không tốt cho việc giữ hồ sơ [ngoại trừ trong văn bản sẽ chỉ được phân tích bởi con người - và với nhận dạng nhân vật quang học được cải thiện và trí tuệ nhân tạo, tôi nghĩ rằng số lượng các trường hợp này sẽ giảm dần].
>>> time.time[]
1424233311.771502
3 Mô -đun
>>> time.time[]
1424233311.771502
Mô -đun
>>> time.time[]
1424233311.771502
3 cũng khá hữu ích ở đây:>>> import datetime
>>> time.time[]
1424233311.771502
9
>>> time.time[]
1424233311.771502
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
0 là một phương thức lớp trả về thời gian hiện tại. Nó sử dụng >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
1 mà không có thông tin múi giờ [nếu không được cung cấp, nếu không hãy xem thời gian nhận thức dưới đây]. Nó có một đại diện [cho phép bạn tạo lại một đối tượng tương đương] lặp lại trên vỏ, nhưng khi được in [hoặc bị ép buộc thành một >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
2], nó ở định dạng có thể đọc được [và gần như ISO] và loại từ vựng tương đương với Loại thời gian:>>> datetime.datetime.now[]
datetime.datetime[2015, 2, 17, 23, 43, 49, 94252]
>>> print[datetime.datetime.now[]]
2015-02-17 23:43:51.782461
DateTime's >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
3
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
Bạn có thể nhận được một đối tượng DateTime trong thời gian UTC, một tiêu chuẩn toàn cầu, bằng cách thực hiện điều này:
>>> datetime.datetime.utcnow[]
datetime.datetime[2015, 2, 18, 4, 53, 28, 394163]
>>> print[datetime.datetime.utcnow[]]
2015-02-18 04:53:31.783988
UTC là một tiêu chuẩn thời gian gần như tương đương với múi giờ GMT. [Trong khi GMT và UTC không thay đổi thời gian tiết kiệm ánh sáng ban ngày, người dùng của họ có thể chuyển sang thời gian khác, như thời gian mùa hè của Anh, trong mùa hè.]
DateTime Timezone Aware
Tuy nhiên, không có đối tượng DateTime nào chúng tôi tạo ra cho đến nay có thể dễ dàng chuyển đổi sang các múi giờ khác nhau. Chúng ta có thể giải quyết vấn đề đó với mô -đun
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
4:>>> import pytz
>>> then = datetime.datetime.now[pytz.utc]
>>> then
datetime.datetime[2015, 2, 18, 4, 55, 58, 753949, tzinfo=]
Tương tự, trong Python 3, chúng ta có lớp
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
5 với phiên bản UTC >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
5 được đính kèm, điều này cũng làm cho thời gian đối tượng nhận thức được [nhưng để chuyển đổi thành múi giờ khác mà không cần mô -đun >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
4 tiện dụng như một bài tập cho người đọc]:>>> datetime.datetime.now[datetime.timezone.utc]
datetime.datetime[2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc]
Và chúng ta thấy chúng ta có thể dễ dàng chuyển đổi thành múi giờ từ đối tượng UTC ban đầu.
>>> print[then]
2015-02-18 04:55:58.753949+00:00
>>> print[then.astimezone[pytz.timezone['US/Eastern']]]
2015-02-17 23:55:58.753949-05:00
Bạn cũng có thể tạo ra một đối tượng DateTime ngây thơ nhận thức được phương thức
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
4 >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
9 hoặc bằng cách thay thế thuộc tính TZINFO [bằng >>> time.ctime[1424233311.771502]
'Tue Feb 17 23:21:51 2015'
0, điều này được thực hiện một cách mù quáng], nhưng đây là những phương sách cuối cùng hơn so với thực tiễn tốt nhất:>>> time.time[]
1424233311.771502
0Mô -đun
>>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
4 cho phép chúng tôi làm cho các đối tượng >>> time.time[]
1424233311.771502
3 của chúng tôi nhận thức được và chuyển đổi thời gian thành hàng trăm múi giờ có sẵn trong mô -đun >>> time.ctime[]
'Tue Feb 17 23:21:56 2015'
4.Người ta có thể tuần tự hóa đối tượng này trong thời gian UTC và lưu trữ trong cơ sở dữ liệu, nhưng nó sẽ đòi hỏi nhiều bộ nhớ hơn và dễ bị lỗi hơn là chỉ đơn giản là lưu trữ thời gian Epoch, mà tôi đã chứng minh trước.
Các cách khác của thời gian xem có thể dễ bị lỗi hơn nhiều, đặc biệt là khi xử lý dữ liệu có thể đến từ các múi giờ khác nhau. Bạn muốn không có sự nhầm lẫn nào về việc có được múi giờ hoặc đối tượng DateTime được tuần tự hóa được dự định.
Nếu bạn đang hiển thị thời gian với Python cho người dùng,
>>> time.time[]
1424233311.771502
6 hoạt động độc đáo, không phải trong bảng [nó thường không sắp xếp tốt], mà có lẽ trong một chiếc đồng hồ. Tuy nhiên, cá nhân tôi khuyên bạn nên, khi xử lý thời gian ở Python, hoặc sử dụng Unix Time hoặc một đối tượng UTC >>> time.time[]
1424233311.771502
3 nhận thức về Timezone.