将 TZ 时间转换为字符串



python来说很新,我什至很难在谷歌上搜索这个,因为我不知道这是什么时间格式。

时间格式 :'2019-12-13T17:00:54.942Z'

我尝试了以下方法:

from datetime import datetime
'created_at': datetime.strptime(saved_data['created_at'],"%Y-%m-%dT%H:%M:%SZ")

基本上,我想打印出上面提到的时间格式的人类可读字符串。

谢谢!

试试这个:

from dateutil import parser
from datetime import datetime
datetime_obj = parser.parse(saved_data['created_at'])
readable = datetime.strftime(datetime_obj,'%Y-%m-%d %H:%M:%S')
print (readable)

输入日期格式为 RFC 3339 格式

使用pyRFC3339python 模块是解析/生成RFC3339格式时间戳与 python datetime.datetime 对象的最简单方法。

>>> import pyrfc3339
>>> ts='2019-12-13T17:00:54.942Z'
>>> new_ts = pyrfc3339.parse(ts)
>>> new_ts
datetime.datetime(2019, 12, 13, 17, 0, 54, 942000, tzinfo=<UTC>)
>>> print(new_ts.strftime("%Y-%m-%d %H:%M:%S"))
2019-12-13 17:00:54
>>>

Pythondatetime有一个专门用于做到这一点的方法 -.isoformat()

from datetime import datetime
datetime_object = parser.parse(saved_data['created_at'])
data = {
'created_at': datetime_object.isoformat()
}

将格式化字符串转换为日期时间对象datetime.strptime后ISO8601,您可以:

  1. .replace(microsecond=0)删除毫秒
  2. 通过str(some_datetime_obj)字符串化结果

试试这个:

from datetime import datetime
some_iso8601_str = '2019-12-13T17:00:54.942Z'
datetime_str = str(datetime.strptime(some_iso8601_str, '%Y-%m-%dT%H:%M:%S.%fZ').replace(microsecond=0))
print(datetime_str)

最新更新