0
2018-03-09T09:00:00.687294374+08

这是我从 TRTH(Thomson Reuters Tick History)获得的香港日期时间数据。我想将它转换为纪元时间,但由于它具有额外的精度,我无法这样做。我只知道如何将日期时间以秒为单位的精度转换为纪元时间,这可以通过以下代码完成

import time
datetime = '15.07.2011 16:02:09'
pattern = '%d.%m.%Y %H:%M:%S'
epoch = int(time.mktime(time.strptime(datetime, pattern)))
print epoch

但我不知道如何转换我拥有的数据。请帮忙。

编辑1:我知道香港时间是UTC+8,所以+08就在那里,所以我可以删除它,然后留下要转换为纪元的字符串是

2018-03-09T09:00:00.687294374
4

1 回答 1

0

纳秒的日期时间是不可能的,只有微秒。也许您可以尝试以下方法(使用 Python 3):

from datetime import datetime, timezone
s = '2018-03-09T09:00:00.687294374'  # your string
dt = datetime.strptime(s[:-3], '%Y-%m-%dT%H:%M:%S.%f')  # removing the nanoseconds
timestamp = dt.replace(tzinfo=timezone.utc).timestamp() # get POSIX timestamp 
print(timestamp)

1520586000.687294

文档:datetime.time & datetime.timestamp()

另请查看:

1)在 Python 中将 datetime.date 转换为 UTC 时间戳

2)解析包含纳秒的日期时间字符串

也许 Python 3.7 也有可能: PEP 564 -- 添加具有纳秒分辨率的新时间函数

于 2018-06-26T15:41:00.603 回答