什么是 yy-mm-dd'D' 格式?

What is yy-mm-dd'D' format?

我得到了一些 csv 文件。在文件里面,有这样的时间戳

timestamp
2018-08-04D00:00:03.340429000
2018-08-04D00:00:03.911072000
2018-08-04D00:00:04.109119000
2018-08-04D00:00:05.348754000
2018-08-04D00:00:07.569001000
2018-08-04D00:00:08.666946000
2018-08-04D00:00:09.247728000
2018-08-04D00:00:09.247728000
2018-08-04D00:00:09.538240000
2018-08-04D00:00:09.715869000

由于 yy-mm-dd 'D',我无法将其转换为代码。 我搜索了 google 但我找不到关于引用格式的信息。 有人知道格式吗?

我认为这是 ISO 8601 的一个奇怪变体。它可以用格式字符串解析:

datetime.strptime(d[:-3], "%Y-%m-%dD%H:%M:%S.%f")

datetime 模块的美妙之处在于,您可以使用它来解析几乎所有内容,只要您知道要查找的内容即可:

import datetime
datetime.datetime.strptime("2018-08-04D00:00:03.340429000", 
                           "%Y-%m-%dD%H:%M:%S.%f000")
#datetime.datetime(2018, 8, 4, 0, 0, 3, 340429)

注意'%f'解析微秒,要求小数点后只有六位小数。我的格式字符串中剩余的三个零告诉 strptime 字符串的最后三位数字(纳秒)始终为零。