在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ datetime
基礎(chǔ)
itertools
HTTP 服務(wù)
hashlib
閉包
文件和目錄
類(lèi)
單元測(cè)試
使用 @property
標(biāo)準(zhǔn)模塊
陌生的 metaclass
Base64
進(jìn)程、線程和協(xié)程
讀寫(xiě)二進(jìn)制文件
匿名函數(shù)
輸入和輸出
Click
元組
字符編碼
partial 函數(shù)
參考資料
collections
協(xié)程
類(lèi)和實(shí)例
Python 之旅
定制類(lèi)和魔法方法
常用數(shù)據(jù)類(lèi)型
繼承和多態(tài)
ThreadLocal
HTTP 協(xié)議簡(jiǎn)介
Requests 庫(kù)的使用
讀寫(xiě)文本文件
列表
os 模塊
迭代器 (Iterator)
正則表達(dá)式
集合
上下文管理器
異常處理
你不知道的 super
定義函數(shù)
datetime
資源推薦
字典
slots 魔法
hmac
第三方模塊
進(jìn)程
類(lèi)方法和靜態(tài)方法
函數(shù)參數(shù)
高階函數(shù)
函數(shù)
re 模塊
高級(jí)特性
線程
argparse
生成器
結(jié)束語(yǔ)
字符串
map/reduce/filter
函數(shù)式編程
Celery
裝飾器

datetime

Python 提供了兩個(gè)標(biāo)準(zhǔn)庫(kù)用于處理跟時(shí)間相關(guān)的問(wèn)題,一個(gè)是 time,另一個(gè)是 datetime,datetime 對(duì) time 進(jìn)行了封裝,提供了更多實(shí)用的函數(shù)。本文介紹 datetime 庫(kù)的簡(jiǎn)單使用。

當(dāng)前時(shí)間

獲取當(dāng)前時(shí)間可以使用 now()utcnow() 方法,其中,now() 用于獲取當(dāng)?shù)貢r(shí)間,而 utcnow() 用于獲取 UTC 時(shí)間。

>>> from datetime import datetime

>>> datetime.now()     # 返回一個(gè) datetime 對(duì)象,這里是當(dāng)?shù)貢r(shí)間
datetime.datetime(2016, 12, 10, 11, 32, 43, 806970)

>>> datetime.utcnow()  # 返回一個(gè) datetime 對(duì)象,這里是 UTC 時(shí)間
datetime.datetime(2016, 12, 10, 3, 32, 49, 999423)

>>> datetime.now().year, datetime.now().month, datetime.now().day     # 年月日
(2016, 12, 10)

>>> datetime.now().hour, datetime.now().minute, datetime.now().second  # 時(shí)分秒
(11, 35, 37)

時(shí)間格式化

有時(shí),我們需要對(duì)時(shí)間做格式化處理,可以使用 strftime()strptime() 方法,其中,strftime 用于對(duì) datetime 對(duì)象進(jìn)行格式化,strptime 用于對(duì)字符串對(duì)象進(jìn)行格式化。

>>> from datetime import datetime

# 獲取當(dāng)前當(dāng)?shù)貢r(shí)間
>>> now = datetime.now()
>>> now
datetime.datetime(2016, 12, 10, 11, 46, 24, 432168)

# 對(duì) datetime 對(duì)象進(jìn)行格式化,轉(zhuǎn)為字符串格式
>>> now_str = now.strftime('%Y-%m-%d %H:%M:%S.%f')
>>> now_str
'2016-12-10 11:46:24.432168'

# 對(duì)字符串對(duì)象進(jìn)行格式化,轉(zhuǎn)為 datetime 對(duì)象
>>> datetime.strptime(now_str, '%Y-%m-%d %H:%M:%S.%f')
datetime.datetime(2016, 12, 10, 11, 46, 24, 432168)

時(shí)間戳

Unix 時(shí)間戳根據(jù)精度的不同,有 10 位(秒級(jí)),13 位(毫秒級(jí)),16 位(微妙級(jí))和 19 位(納秒級(jí))。

要注意的是,由于每個(gè)時(shí)區(qū)都有自己的本地時(shí)間(北京在東八區(qū)),因此也產(chǎn)生了世界標(biāo)準(zhǔn)時(shí)間(UTC, Universal Time Coordinated)。所以,在將一個(gè)時(shí)間戳轉(zhuǎn)換為普通時(shí)間(比如 2016-01-01 12:00:00)時(shí),要注意是要本地時(shí)區(qū)的時(shí)間還是世界時(shí)間等。

  • 獲取當(dāng)前當(dāng)?shù)貢r(shí)間戳
>>> import time
>>> from datetime import datetime

# 獲取當(dāng)前當(dāng)?shù)貢r(shí)間,返回一個(gè) datetime 對(duì)象
>>> now = datetime.now()
>>> now
datetime.datetime(2016, 12, 9, 11, 56, 47, 632778)

# 13 位的毫秒時(shí)間戳
>>> long(time.mktime(now.timetuple()) * 1000.0 + now.microsecond / 1000.0)
1481255807632L

# 10 位的時(shí)間戳
>>> int(time.mktime(now.timetuple()))
1481255807
  • 獲取當(dāng)前 UTC 時(shí)間戳
>>> import calendar
>>> from datetime import datetime

# 獲取當(dāng)前的 UTC 時(shí)間,返回 datetime 對(duì)象
>>> utc_now = datetime.utcnow()
>>> utc_now
datetime.datetime(2016, 12, 9, 4, 0, 53, 356641)

# 13 位的時(shí)間戳
>>> long(calendar.timegm(utc_now.timetuple()) * 1000.0 + utc_now.microsecond / 1000.0)
1481256053356L

# 10 位的時(shí)間戳
>>> calendar.timegm(utc_now.timetuple())
1481256053
  • 將時(shí)間戳轉(zhuǎn)為字符串形式
>>> from datetime import datetime

# 13 位的毫秒時(shí)間戳
>>> timestamp = 1456402864242

# 根據(jù)時(shí)間戳構(gòu)建當(dāng)?shù)貢r(shí)間
>>> datetime.fromtimestamp(timestamp / 1000.0).strftime('%Y-%m-%d %H:%M:%S.%f')
'2016-02-25 20:21:04.242000'

# 根據(jù)時(shí)間戳構(gòu)建 UTC 時(shí)間
>>> datetime.utcfromtimestamp(timestamp / 1000.0).strftime('%Y-%m-%d %H:%M:%S.%f')
'2016-02-25 12:21:04.242000'

# 10 位的時(shí)間戳
>>> timestamp = 1456402864

# 根據(jù)時(shí)間戳構(gòu)建當(dāng)?shù)貢r(shí)間
>>> datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
'2016-02-25 20:21:04'

# 根據(jù)時(shí)間戳構(gòu)建 UTC 時(shí)間
>>> datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
'2016-02-25 12:21:04'
  • 將時(shí)間戳轉(zhuǎn)為 datetime 形式
>>> from datetime import datetime

# 13 位的毫秒時(shí)間戳
>>> timestamp = 1456402864242

# 根據(jù)時(shí)間戳構(gòu)建當(dāng)?shù)貢r(shí)間
>>> datetime.fromtimestamp(timestamp / 1000.0)
datetime.datetime(2016, 2, 25, 20, 21, 4, 242000)

# 根據(jù)時(shí)間戳構(gòu)建 UTC 時(shí)間
>>> datetime.utcfromtimestamp(timestamp / 1000.0)
datetime.datetime(2016, 2, 25, 12, 21, 4, 242000)

# 10 位的時(shí)間戳
>>> timestamp = 1456402864

# 根據(jù)時(shí)間戳構(gòu)建當(dāng)?shù)貢r(shí)間
>>> datetime.fromtimestamp(timestamp)
datetime.datetime(2016, 2, 25, 20, 21, 4)

# 根據(jù)時(shí)間戳構(gòu)建 UTC 時(shí)間
>>> datetime.utcfromtimestamp(timestamp)
datetime.datetime(2016, 2, 25, 12, 21, 4)

參考資料

上一篇:集合下一篇:定義函數(shù)