【发布时间】:2019-08-30 00:44:09
【问题描述】:
我有一些从 JIRA API 动态输入的创建和更新的日期时间,用于使用 python 脚本加载到 Excel 工作表中每月获取 JIRA 票证的自动化过程。
部分示例日期如下:
- 2017-02-09T09:33:33.508+1100
- 2017-05-19T13:59:36.735+1000
我想以 %d-%b-%Y 之类的格式呈现此内容(例如:2017 年 2 月 9 日)
我尝试过使用 python datetime.strptime 和 strftime。
示例代码如下:
from datetime import datetime
datetimeObj = datetime.strptime('2017-02-09T09:43:04.216+1000', '%Y-%m-%dT%H:%M:%S.%f+1000')
print(datetimeObj.strftime('%d-%b-%Y'))
这给了我预期的结果,但现在我已经硬编码了我想要的日期等值,并以日期时间格式添加了+1000,但由于它动态变化的日期时间,当日期时间以 @ 之类的值结束时我会卡住987654325@.
我相信最后一部分与夏令时有关,但在这种情况下我找不到正确的格式。
有没有办法为最后的+1000 和+1100 部分转换日期时间格式,而不是像'%Y-%m-%dT%H:%M:%S.%f+1000' 这样的硬编码?
【问题讨论】:
-
只是在进行试错法时找到了答案。
datetimeObj = datetime.strptime('2017-02-09T09:43:04.216+1000', '%Y-%m-%dT%H:%M:%S.%f%z')最后使用%z解决了这个问题。 -
您似乎不需要事件的实际时间。如果是这样,您可以切分日期,然后通过
datetime.strptime(date[:10], '%Y-%m-%d')暂停它,这样可以省去暂停剩余时间的麻烦。 -
谢谢@HenryYik。它确实省去了麻烦。
标签: python datetime strptime strftime