如何将“2016年1月1日”转换为UTC ISO格式?

2024-10-02 20:33:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有以下字符串:“01 January 2016”到UTC ISO日期格式?在

我使用的是arrow模块和下面的代码,但它充满了错误,我想可能是,有一个更小更灵活的解决方案,因为python鼓励优雅、更简单的方法来完成任务,总之,我的代码如下:

updateStr = " 01 January 2016" #Note the space at the beginning
dateList = updateStr.split[' ']
dateDict = {"day" : dateList[1],"month": months.index(dateList[2])+1, "year" : dateList[3]}
dateStr = str(dateDict['day']) + "-" + str(dateDict["month"]) + "-" + str(dateDict["year"])
dateISO = arrow.get(dateStr, 'YYYY-MM-DD HH:mm:ss')

请帮我把它转换成UTC ISO格式,月份是一年中月份的列表。在


Tags: the代码格式isoyearutcdaystr
3条回答

使用arrow

>>> import arrow
>>> updateStr = " 01 January 2016"
>>> arrow.get(updateStr, "DD MMMM YYYY").isoformat()
'2016-01-01T00:00:00+00:00'
>>> 

您可以使用^{}的方法解析此日期字符串,然后将其重新格式化为UTC格式:

>>> from datetime import datetime
>>> updateStr = " 01 January 2016" #Note the space at the beginning
>>> d = datetime.strptime(updateStr, '  %d %B %Y') # Same space here
>>> s = datetime.isoformat(d)
>>> s
'2016-01-01T00:00:00'

您可以使用datetime

>>> updateStr = " 01 January 2016"
>>> import datetime as dt
>>> dt.datetime.strptime(updateStr, " %d %B %Y")
datetime.datetime(2016, 1, 1, 0, 0)
>>> _.isoformat()
'2016-01-01T00:00:00'

请记住,这是一个没有时区的“天真”对象。签出pytz以优雅地处理时区,或者只需在UTC的datetime对象中添加适当的utcoffset。在

相关问题 更多 >