Python-時間、日期處理

Python 經常使用時間的操做

  • time
  • datetime

1. time

  1. 獲取當前的時間戳 time.time()
  2. 根據時間戳獲取時間元組 time.localtime()
  3. 根據時間元組獲取字符串時間 time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())

1.1 獲取當前的時間戳

import time
current_timastamp = time.time()
1558150946.8137608

1.2 將時間戳轉換爲字符串時間

1.2.1 獲取時間元祖time.struct_time()

time.localtime() 參數默認爲當前的時間戳 time.time(),能夠指定的時間戳獲取指定的時間元組python

# 獲取當前的時間元組
time.localtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=11, tm_min=52, tm_sec=13, tm_wday=5, tm_yday=138, tm_isdst=0)
# 根據指定的時間戳獲取指定時間元組
time.localtime(current_timastamp)
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=11, tm_min=42, tm_sec=26, tm_wday=5, tm_yday=138, tm_isdst=0)

1.2.2 將時間元祖轉換爲字符串時間

經過 time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) 轉換爲字符串時間。code

time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
'2019-05-18 12:04:11'

1.2.3 總結:

timestamp ---> struct_time ---> string

1.3 將字符串時間轉換時間戳

  1. time.strptime() 將字符串時間轉換爲時間元祖
  2. time.mktime() 時間元祖轉換爲時間戳

1.3.1 字符串時間轉換爲時間元祖

經過 time.strptime('str_time',"%Y-%m-%d %H:%M:%S") 獲取時間元組 time.struct_time()htm

str_time = '2019-05-18 03:27:45'
# 獲取時間元組
time.strptime(str_time,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=12, tm_min=17, tm_sec=18, tm_wday=5, tm_yday=138, tm_isdst=-1)

1.3.2 時間元祖轉換爲時間戳

經過 time.mktime(struct_time,"%Y-%m-%d %H:%M:%S") 轉換爲時間戳對象

time.mktime(time.strptime(str_time,"%Y-%m-%d %H:%M:%S"))
1558153038.0

總結:blog

  1. 將字符串轉換爲時間元組 time.strptime(str,fomart)
  2. 將時間元組轉換爲時間字符戳 time.mktime(struct_time)

1.3.3 time.localtime() 和 time.gmtime() 的區別

time.localtime(time.time())time.gmtime(time.time()) 的區別字符串

time.localtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=11, tm_min=56, tm_sec=52, tm_wday=5, tm_yday=138, tm_isdst=0)
# tm_hour = 11
time.gmtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=3, tm_min=56, tm_sec=58, tm_wday=5, tm_yday=138, tm_isdst=0)
# tm_hour = 8

2 datetime

2.1 獲取當前的時間日期對象

import datetime
d = datetime.datetime.now()
datetime.datetime(2019, 6, 14, 22, 37, 50, 634343)

2.2 將時間對象轉換爲字符串時間

from datetime import datetime
# 獲取當前的時間日期
datetime.now()
datetime.datetime(2019, 5, 21, 9, 53, 28, 875595)
# 將當前的轉換爲字符串時間
datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2019-05-21 09:43:21'

2.3 將字符串時間轉換爲時間對象

# 字符串時間
time_string = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # '2019-05-23 11:22:36'

datetime.datetime.strptime(time_string,'%Y-%m-%d %H:%M:%S')
datetime.datetime(2019, 5, 23, 14, 31, 28)

3 將時間戳轉爲時間對象相互轉換

3.1 將時間戳轉換爲時間對象

  • datetime.fromtimestamp(t)
t = time.time() # 1558404024.8977106
datetime.fromtimestamp(t)
datetime.datetime(2019, 5, 21, 10, 0, 24, 897711)

3.2 將時間對象轉換爲時間戳 timestamp()

  • t.timestamp()
t = datetime.now()
t.timestamp() 
1558404314.672059

3.3 獲取前n分鐘,天月的日期時間

# python datetime獲取幾分鐘、小時、天以前的時間
print((datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M"))

print((datetime.datetime.now() - datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M"))

print((datetime.datetime.now() - datetime.timedelta(seconds=1)).strftime("%Y-%m-%d %H:%M"))

本文參考:get

博主renpingshengstring

博主清明-心若淡定it

相關文章
相關標籤/搜索