[英]Datetimes in Python
我有兩個約會
'2017-03-10 19:01:27'
'2017-03-11 07:35:55'
我希望有一天能有所作為。 如何在考慮時區的情況下做到這一點?
因為我們不知道這些日期的時區。 我是Python新手
我有:
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
date_first = datetime.strptime(args[0], time_format)
date_second = datetime.strptime(args[1], time_format)
rep_date_first = date_first.replace(tzinfo=from_zone)
rep_date_second = date_second.replace(tzinfo=from_zone)
timezone_date_first = rep_date_first.astimezone(to_zone)
timezone_date_second = rep_date_second.astimezone(to_zone)
day = timezone_date_first.day - timezone_date_second.day
一天還給我0,如何解決? 請幫我
通過更改時區,您可能會在日期中增加或減去足夠的時間,以使它們在同一天結束。 在將它們從字符串轉換時,您可能應該假設一個時區–或僅將它們保留為朴素的datetime對象。
>>> d1 = '2017-03-10 19:01:27'
>>> d2 = '2017-03-11 07:35:55'
>>> date_first = datetime.strptime(d1, '%Y-%m-%d %H:%M:%S')
>>> date_second = datetime.strptime(d2, '%Y-%m-%d %H:%M:%S')
>>> date_first.day
10
>>> date_second.day - date_first.day
1
arrow
模塊是每個使用日期的人的好朋友,您可以輕松地實現轉變。
import arrow
dt = arrow.get('2017-03-10 19:01:27')
dt = dt.replace(tzinfo='Europe/Warsaw')
dt2 = dt.shift(days=-1)
assert dt2.isoformat() == '2017-03-09T19:01:27+01:00'
您的要求有點陌生: I would like to get the difference one day
並且您的代碼不能獨立運行( args[0]
),但是我認為您可以假設日期在同一時區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.