我想将字符串转换为日期时间,字符串解析如下:
Metatime = datetime.datetime.strptime(metadata.get("FileModifyDate"), "%y:%m:%d %H:%M:%S")
元数据的地方。Get返回如下内容:
2012:11:19 14:53:44-05:00
我有另一个想要比较的数据时间元素,所以格式应该是相同的。另一个datetime元素像这样:
(datetime.datetime(2014, 3, 26, 23, 22, 21)
我怎么能格式化的东西,能够做一个逻辑比较?
Python的标准datetime.strptime()方法不支持以hh:mm格式解析时区信息。有一个开放的特性请求。
同时,您可以使用以下方法:
>>> FileModifyDate = '2012:11:19 14:53:44-05:00'
>>> datetime.strptime(FileModifyDate.replace(':', ''), '%Y%m%d %H%M%S%z')
datetime.datetime(2012, 11, 19, 14, 53, 44, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400)))
>>> print(_)
2012-11-19 14:53:44-05:00
请注意,您需要使用Python 3.3或更高版本才能正常工作。
现在,如果您想将结果与
进行比较>>> another_date = datetime(2014, 3, 26, 23, 22, 21)
你需要知道那个日期所在的时区。如果是UTC - do
>>> file_date = datetime.strptime(FileModifyDate.replace(':', ''), '%Y%m%d %H%M%S%z')
>>> another_date.replace(tzinfo=timezone.utc) > file_date
True
如果它位于其他区域,则需要使用第三方库(如pytz)将其转换为感知实例,然后才能进行比较。