strptime,格式化并保存毫秒

2024-05-14 23:25:07 发布

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

我的全球定位系统,通过gpsd,以格式返回一个时间

time_string = '1582-10-04T12:34:56.000Z'

我可以将此字符串转换为时区感知datetime对象 与

from datetime import datetime, timedelta, timezone
timeformat = '%Y-%m-%dT%H:%M:%S.000Z'  # ISO8601
datetime.strptime(time_string, timeformat).replace(tzinfo=(timezone(timedelta(0))))  

……很酷。我可以操纵对象,加,减,改时区,计算一个包含时区变化的时间增量,等等。。在

问题是应用程序的某些方面有时会返回附加毫秒的时间字符串。在

time_string = '1582-10-04T12:34:56.123Z'

…一切都会失控。在

.strip('Z')不能做到这一点。在

timeformat = '%Y-%m-%dT%H:%M:%S<;--不带.000或{} 既不作为b.strip('.000Z')也不作为其置换。在

我似乎找不到一个优雅的方法来保存毫秒,如果,以及何时发生,并将字符串解析为一个时区感知的datetime对象。在


Tags: 对象字符串fromimportdatetimestringtime格式
1条回答
网友
1楼 · 发布于 2024-05-14 23:25:07

000替换成%f怎么样?在

from datetime import datetime, timedelta, timezone
time_string = '1582-10-04T12:34:56.123Z'
timeformat = '%Y-%m-%dT%H:%M:%S.%fZ'
datetime.strptime(time_string, timeformat).replace(tzinfo=(timezone(timedelta(0))))

输出:

^{pr2}$

有关%f格式,请参见strftime() and strptime() Behavior。在

相关问题 更多 >

    热门问题