t='20180515102500'
d=datetime.strptime(t, "%Y%m%d%H%M%S")
millis_since_epoch = int(time.mktime(d.timetuple())) * 1000
print(millis_since_epoch)
repl.it上输出:1526379900000 (Python 3.6.1),而本地环境上输出:1526397900000(Python 2.7.14)。
为什么会有这种差异?如何推荐将datetime对象转换为epoch时间?
repl.it
运行的时区比您本地时区早5个小时,因此其结果会相差5个小时。如果您不想使用“该计算机的本地时间”,则需要决定您想要什么样的时间信息,例如:UTC?带有偏移量或时区信息的时间戳?请确认您的选择。 - abarnerttimestamp()
(然后乘以1000如果您想要毫秒而不是秒),或者减去epoch(作为datetime
)并使用timedelta
结果。但是,这两种方法都无法解决您的问题;您最终会得到相同的结果。 - abarnertfloat
转换为int
,然后再乘以 1000 呢?即使你在毫秒计数,你实际上是否确实想要确保没有亚秒精度呢? - abarnert