我建議你分析它變成一個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相同。好東西,因爲一個跟蹤閏秒的圖書館會非常困難。 –