Cách sạch nhất và hữu ích nhất để có được ngày mai là gì? Có phải là một cách tốt hơn để thêm một đến ngày, xử lý ngày vào cuối tháng, vvCách gọn gàng và hữu ích nhất để có ngày mai?
Trả lời
datetime.date.today() + datetime.timedelta(days=1)
nên làm các trick
timedelta
có thể xử lý thêm ngày, giây, micro, mili giây, phút, giờ hoặc tuần.
>>> import datetime
>>> today = datetime.date.today()
>>> today
datetime.date(2009, 10, 1)
>>> today + datetime.timedelta(days=1)
datetime.date(2009, 10, 2)
>>> datetime.date(2009,10,31) + datetime.timedelta(hours=24)
datetime.date(2009, 11, 1)
Như hỏi trong một chú thích, nhảy ngày không gây vấn đề:
>>> datetime.date(2004, 2, 28) + datetime.timedelta(days=1)
datetime.date(2004, 2, 29)
>>> datetime.date(2004, 2, 28) + datetime.timedelta(days=2)
datetime.date(2004, 3, 1)
>>> datetime.date(2005, 2, 28) + datetime.timedelta(days=1)
datetime.date(2005, 3, 1)
Không xử lý leap seconds tho:
>>> from datetime import datetime, timedelta
>>> dt = datetime(2008,12,31,23,59,59)
>>> str(dt)
'2008-12-31 23:59:59'
>>> # leap second was added at the end of 2008,
>>> # adding one second should create a datetime
>>> # of '2008-12-31 23:59:60'
>>> str(dt+timedelta(0,1))
'2009-01-01 00:00:00'
>>> str(dt+timedelta(0,2))
'2009-01-01 00:00:01'
darn.
EDIT - @ Mark: Các tài liệu nói "có", nhưng mã nói "không quá nhiều":
>>> time.strptime("2008-12-31 23:59:60","%Y-%m-%d %H:%M:%S")
(2008, 12, 31, 23, 59, 60, 2, 366, -1)
>>> time.mktime(time.strptime("2008-12-31 23:59:60","%Y-%m-%d %H:%M:%S"))
1230789600.0
>>> time.gmtime(time.mktime(time.strptime("2008-12-31 23:59:60","%Y-%m-%d %H:%M:%S")))
(2009, 1, 1, 6, 0, 0, 3, 1, 0)
>>> time.localtime(time.mktime(time.strptime("2008-12-31 23:59:60","%Y-%m-%d %H:%M:%S")))
(2009, 1, 1, 0, 0, 0, 3, 1, 0)
tôi sẽ nghĩ rằng gmtime hoặc localtime sẽ mang giá trị trả về bởi mktime và cho tôi trả về bản gốc, với 60 là số giây. Và thử nghiệm này cho thấy rằng những giây nhuận chỉ có thể biến mất ...
>>> a = time.mktime(time.strptime("2008-12-31 23:59:60","%Y-%m-%d %H:%M:%S"))
>>> b = time.mktime(time.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S"))
>>> a,b
(1230789600.0, 1230789600.0)
>>> b-a
0.0
'time.strftime' xử lý giây nhuận: xem Chú thích 2: http://docs.python.org/library/time.html#time.strftime và Lưu ý 3: http://docs.python.org/library/datetime .html # strftime-behavior –
Điều này là do thời gian Unix không xử lý giây nhảy vọt. Xem http://en.wikipedia.org/wiki/Unix_time#History, http://www.mail-archive.com/[email protected]/msg00094.html và POSIX. –
"mỗi ngày sẽ được tính chính xác 86400 giây" http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_15 –
Ngay cả những cơ bản time
mô-đun có thể xử lý này:
import time
time.localtime(time.time() + 24*3600)
Giải pháp thanh lịch nhất trong số tất cả – Greg
Điều này không thành công trong phạm vi Thời gian tiết kiệm ánh sáng ban ngày ở Hoa Kỳ, bởi vì tại các ranh giới đó một ngày sẽ có 23 giờ và một ngày sẽ có 25 giờ. Điều này cũng không tính đến giây nhảy vọt. –
@CharlesWood: câu trả lời này có thể trả về một giờ khác nhau (trong một số múi giờ) có nghĩa là nó có thể trả về ** ngày khác ** (không phải ngày mai) nhưng nó luôn trả về thời gian chính xác 24 giờ (câu trả lời được chấp nhận trả về nửa đêm (giờ chưa biết từ bây giờ)). Tôi không thấy những giây nhảy vọt có thể thay đổi kết quả ở đây trừ khi được gọi trong giây lát nhảy vọt trên các hệ thống mà ở đó 23:59:60 và 00:00:00 có cùng dấu thời gian. – jfs
- 1. cách gọn gàng để lấy ngày Thứ Sáu cuối cùng
- 2. kích thước gọn gàng
- 3. Các lớp Java hữu ích/hữu ích nhất?
- 4. Bourbon gọn gàng nhiều breakpoint
- 5. Ngăn chặn gọn gàng thêm thẻ html
- 6. Cách Rails để xác định ngày mai là gì?
- 7. Cách gọn gàng nhất để kết hợp hai quần short vào một số
- 8. Đầu ra HTML gọn gàng với javascript
- 9. Cách tốt nhất để có được kết quả hữu ích nhất từ oprofile là gì?
- 10. Làm cách nào để tổng hợp một mảng đa chiều trong python gọn gàng nhất?
- 11. Định cấu hình và sử dụng HTML gọn gàng
- 12. Flask Display Json trong một cách gọn gàng
- 13. Ngôn ngữ chức năng logic hữu dụng và hữu ích nhất để học
- 14. jQuery Giải thích cú pháp gọn gàng
- 15. PHP "in đẹp" HTML (không gọn gàng)
- 16. breakpoint sử dụng bourbon gọn gàng lưới
- 17. Cấu trúc gọn gàng so với lớp
- 18. Tùy chỉnh CSS gọn gàng của Pandoc?
- 19. Cách định dạng/gọn gàng/làm đẹp trong JavaScript
- 20. Python, mảng sắp xếp gọn gàng
- 21. Eclipse: Tái cấu trúc hữu ích nhất
- 22. Nhập gọn gàng với trăn 2.6
- 23. Một thay thế cho php gọn gàng?
- 24. Giữ javascript của bạn có cấu trúc và gọn gàng (như một lập trình viên OO)
- 25. Plugin Xcode hữu ích nhất là gì?
- 26. thế nào có được ngày hôm qua và ngày mai datetime trong C#
- 27. JSON String gọn gàng/định dạng cho Java
- 28. Các hàm API gốc hữu ích nhất của jQuery
- 29. Mẫu thiết kế gọn gàng nhất để hiển thị dữ liệu biểu mẫu và lỗi xác thực?
- 30. Cách gọn gàng để kiểm tra xem Tập hợp có chứa một số không
Nó xử lý năm nhuận ok? – Rook
@ldigas: yes it does. – nosklo