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

时间:2018-09-18 03:52:38

标签: python datetime-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,但找不到参考格式。 有没有人知道这种格式?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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,字符串的最后三个数字(纳秒)始终为零。