1. 時間字符串 --> 時間戳
1) time 模塊
timestring = '2016-12-21 10:22:56' print time.mktime(time.strptime(timestring, '%Y-%m-%d %H:%M:%S')) # 1482286976.0
time.mktime() 與 time.localtime() 互為還原函數。
time.mktime(timetuple) :將時間元組轉換成時間戳
time.localtime([timestamp]):將時間戳轉會為時間元組
2) datetime 模塊
在這里沒有找到,似乎只有 time 模塊能獲取時間戳
2. 時間戳 --> 時間字符串
1) time 模塊
timestamp = time.time() timestruct = time.localtime(timestamp) print time.strftime('%Y-%m-%d %H:%M:%S', timestruct) # 2016-12-22 10:49:57
2) datetime 模塊
import datetime timestamp = 1482374997.55 datetime_struct = datetime.datetime.fromtimestamp(timestamp) print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 10:49:57 datetime_struct = datetime.datetime.utcfromtimestamp(timestamp) print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 02:49:57
fromtimestamp(timestamp[, tz]):將時間戳轉為當地的時間元組
utcfromtimestamp(timestamp):將時間戳轉為UTC的時間元組。以北京為例:utc時間比北京當地時間少8個小時。
3. 時間差計算
1) 幾天/周前
import datetime now = datetime.datetime.now() three_days_ago = now + datetime.timedelta(days=-3) three_weeks_ago = now + datetime.timedelta(weeks=-3) print now # datetime.datetime(2016, 12, 22, 11, 24, 49, 987171)
print three_days_ago # datetime.datetime(2016, 12, 19, 11, 24, 49, 987171)
print three_weeks_ago # datetime.datetime(2016, 12, 1, 11, 24, 49, 987171)
2) 幾天/周后
import datetime now = datetime.datetime.now() three_days_later = now + datetime.timedelta(days=3) three_weeks_later = now + datetime.timedelta(weeks=3) print now # datetime.datetime(2016, 12, 22, 11, 24, 49, 987171) print three_days_later # datetime.datetime(2016, 12, 25, 11, 24, 49, 987171) print three_weeks_later # datetime.datetime(2017, 1, 12, 11, 24, 49, 987171)
注意:沒有months和years
3)時間差
import time import datetime start = datetime.datetime.now() time.sleep(30) end = datetime.datetime.now() print (end-start).days # 0 天數 print (end-start).total_seconds() # 30.029522 精確秒數 print (end-start).seconds # 30 秒數 print (end-start).microseconds # 29522 毫秒數
注意:沒有分鍾
4. 任意時間字符串轉換時間對象
import time from dateutil import parser time_string = time.ctime() # 'Thu Dec 22 10:35:25 2016',這里可以是任意的時間格式 datetime_struct = parser.parse(time_string) print type(datetime_struct) # <type 'datetime.datetime'> print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 13:58:59