python获取系统当前时间并转utc时间为绝对秒数_用Python将datetime.date转换为UTC时间戳...
如果d = date(2011, 1, 1)在世界協(xié)調(diào)時(shí):>>> from datetime import datetime, date>>> import calendar>>> timestamp1 = calendar.timegm(d.timetuple())>>> datetime.utcfromtimestamp
(timestamp1)datetime.datetime(2011, 1, 1, 0, 0)
如果d在本地時(shí)區(qū):>>> import time>>> timestamp2 = time.mktime(d.timetuple()) # DO NOT USE IT WITH UTC DATE>>> datetime.fromtimestamp(timestamp2)datetime.
datetime(2011, 1, 1, 0, 0)
timestamp1和timestamp2如果本地時(shí)區(qū)中的午夜與UTC中的午夜不是相同的時(shí)間實(shí)例,則可能有所不同。
轉(zhuǎn)換datetime.date對(duì)象,表示以UTC格式表示的日期。calendar.timegm():DAY = 24*60*60 # POSIX day in seconds (exact value)timestamp = (utc_date.toordinal() - date(1970, 1, 1).toordinal()) * DAY
timestamp = (utc_date - date(1970, 1, 1)).days * DAY
根據(jù)UTC的說法,我怎樣才能把日期轉(zhuǎn)換成從時(shí)代開始的秒呢?
轉(zhuǎn)換datetime.datetime(不是datetime.date對(duì)象,該對(duì)象已將時(shí)間以UTC的形式表示為相應(yīng)的POSIX時(shí)間戳(afloat).
Python 3.3+from datetime import timezone
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
注:有必要提供timezone.utc明示否則.timestamp()假設(shè)天真的datetime對(duì)象位于本地時(shí)區(qū)。
Python 3(<3.3)沒有從datetime實(shí)例獲取時(shí)間戳的方法,但是與datetime實(shí)例DT對(duì)應(yīng)的POSIX時(shí)間戳可以輕松地按以下方式計(jì)算。對(duì)于一個(gè)天真的DT:timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)對(duì)于有意識(shí)的DT:timestamp = (dt - datetime(1970,1,1, tzinfo=timezone.utc)) / timedelta(seconds=1)
有趣的讀物:劃時(shí)代的時(shí)間與一天中的時(shí)間關(guān)于…之間的區(qū)別現(xiàn)在幾點(diǎn)?和多少秒過去了?
Python 2
若要將上述代碼用于Python 2,請(qǐng)執(zhí)行以下操作:timestamp = (dt - datetime(1970, 1, 1)).total_seconds()
哪里timedelta.total_seconds()等于(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6啟用真除法計(jì)算。from __future__ import divisionfrom datetime import datetime, timedeltadef totimestamp(dt, epoch=datetime(1970,1,1)):
td = dt - epoch # return td.total_seconds()
return (td.microseconds + (td.seconds + td.days * 86400) * 10**6) / 10**6 now = datetime.utcnow()print nowprint totimestamp(now)
輸出量2012-01-08 15:34:10.0224031326036850.02
如何轉(zhuǎn)換感知datetime對(duì)象為POSIX時(shí)間戳。assert dt.tzinfo is not None and dt.utcoffset() is not Nonetimestamp = dt.timestamp() # Python 3.3+
在Python 3上:from datetime import datetime, timedelta, timezone
epoch = datetime(1970, 1, 1, tzinfo=timezone.utc)timestamp = (dt - epoch) / timedelta(seconds=1)integer_timestamp = (dt - epoch)
// timedelta(seconds=1)
在Python 2上:# utc time = local time - utc offsetutc_naive = dt.replace(tzinfo=None) - dt.utcoffset()timestamp =
(utc_naive - datetime(1970, 1, 1)).total_seconds()
總結(jié)
以上是生活随笔為你收集整理的python获取系统当前时间并转utc时间为绝对秒数_用Python将datetime.date转换为UTC时间戳...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows中u盘驱动怎么安装
- 下一篇: c++ ifstream 文件不结束_C