我建议你分析它变成一个datetime
对象,然后计算Januari 1,1970年和那一刻之间的秒数:
import datetime
d = datetime.datetime.strptime("20170108233000", "%Y%m%d%H%M%S")
t0 = datetime.datetime(1970, 1, 1, tzinfo=timezone.utc)
ticks = (d - t0).total_seconds()
编辑:
,或者你可以像@在
d.timestamp()
运行此:jonrsharpe建议,立即使用的timestamp
方法我的机器生产:
$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>>
>>> d = datetime.datetime.strptime("20170108233000", "%Y%m%d%H%M%S")
>>> t0 = datetime.datetime(1970, 1, 1)
>>> ticks = (d - t0).total_seconds()
>>> ticks
1483918200.0
>>>
$ date -d @1483918200
Mon Jan 9 00:30:00 CET 2017
请注意,这产生2017年1月9日。但这是比利时时间。
那么你卡在哪个部分?将该字符串转换为Python'datetime'对象('.strptime(...)')或从该对象获取Unix时间戳('.timestamp()')? – jonrsharpe
我不认为Python中有任何跟踪闰秒的东西。如果这是一个真正的要求,你会遇到一些麻烦。 –
根据[Wikipedia](https://en.wikipedia.org/wiki/Unix_time)Unix时间会忽略闰秒,所以在这方面它与Python相同。好东西,因为一个跟踪闰秒的图书馆会非常困难。 –