微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python中概括时间戳格式

如何解决在python中概括时间戳格式

我得到两种时间戳(一种是毫秒,另一种没有毫秒)

'endtime': '2020-09-09T05:46:41.620Z'

'starttime': '2020-09-08T18:20:57Z'

我必须指定将其转换为日期时间的格式

timestampstart = pd.to_datetime(starttime,format="%Y-%m-%dT%H:%M:%s%fZ")

是否可以在这一行中归纳“格式”,因为如果我的时间为毫秒,代码将崩溃。

如何将其重写为始终忽略毫秒而又不会使我的代码崩溃?

解决方法

两种格式均符合ISO8601。将'Z'字符(表示UTC)替换为'+00:00'(也称为UTC)后,可以方便地使用datetime.fromisoformat解析时间戳。您也可以here找到此方法。

from datetime import datetime

endtime = '2020-09-09T05:46:41.620Z'
starttime = '2020-09-08T18:20:57Z'

for t in (endtime,starttime):
    print(repr(datetime.fromisoformat(t.replace('Z','+00:00'))))
    
# datetime.datetime(2020,9,5,46,41,620000,tzinfo=datetime.timezone.utc)
# datetime.datetime(2020,8,18,20,57,tzinfo=datetime.timezone.utc)

要将所有微秒设置为零,您可以写

# setting microseconds to zero:
for t in (endtime,'+00:00')).replace(microsecond=0)))
    
# datetime.datetime(2020,tzinfo=datetime.timezone.utc)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。