我应该在 Python 中为 strptime 使用什么格式的时间戳?

我有一个 .txt 文件,其中包含字符串"2020-08-13T20:41:15.4227628Z" What format code should I use in strptimefunction in Python 3.7? 我尝试了以下操作,但'8'之前的末尾'Z'不是有效的工作日


from datetime import datetime


timestamp_str = "2020-08-13T20:41:15.4227628Z"

timestamp = datetime.strptime(timestamp_str, '%Y-%m-%dT%H:%M:%S.%f%uZ')


ValueError: time data '2020-08-13T20:41:15.4227628Z' does not match format '%Y-%m-%dT%H:%M:%S.%f%uZ'



一只斗牛犬
浏览 89回答 2
2回答

catspeake

您的时间戳格式主要符合ISO 8601,除了 7 位小数秒。第 7 位数字是 1/10 微秒;通常,您的分辨率为 3、6 或 9 位(分别为毫秒、微秒或纳秒)。Z表示UTC

森栏

后面的 7 位数字.似乎是纳秒数。您可能有一个特定于平台的格式(由 定义strftime(3))可用来代替%f,但如果没有,您最好的选择是在尝试将剩余字符串解析为时间戳之前删除尾随数字。regex = "(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}).(\d.*)"if (m := re.match(regex, timestamp_str) is not None:    timestamp_str = "".join(m.groups())timestamp = datetime.strptime(timestamp_str, '%Y-%m-%dT%H:%M:%S.%fZ')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python