Python中時間型別的互轉
阿新 • • 發佈:2019-01-31
時間的3中表示格式,以及之間的互轉:
在Python中,通常有這三種方式來表示時間:時間戳、元組(struct_time)、格式化的時間字串:
(1)時間戳(timestamp) :通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們執行“type(time.time())”,返回的是float型別。
(2)格式化的時間字串(Format String): ‘2018-04-18’
(3)元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)
用處:時間戳是計算機能夠識別的時間;時間字串是人能夠看懂的時間;元組則是用來操作時間的
轉化:
1.時間戳-->格式化-->字串
_now = time.time() # 時間戳
struct_time = time.localtime(_now) # 時間戳轉化成格式化的時間
time.strftime("%Y-%m-%d %X", struct_time) # 2018-04-21 22:44:53
1.字串-->格式化-->時間戳
str_time = '2018-04-18 08:00:00' struct_time2 = time.strptime(str_time,'%Y-%m-%d %H:%M:%S') # 字串轉格式化 timestamp = time.mktime(struct_time2) # 格式化轉時間戳
# =======以上是time模組,下邊是datetime模組===========================
import datetime
# 1.時間戳 --> 格式化--> 字元型
timestamp1 = 1509636585.0 # 2018-04-21 23:47:02.886948 # 時間戳轉化為格式化(datetime型別)時間 struct_time = datetime.datetime.fromtimestamp(1509636585.0) # 型別:<class 'datetime.datetime'> # 格式化轉化為字串型別 str_time = datetime.datetime.strftime(struct_time,'%Y-%m-%d %H:%M:%S') # 2017-11-02 23:29:45
# 2.字元型 -->格式化 --> 時間戳
str_time1 = '2017-11-02 23:29:45'
# 字串-->格式化
struct_time = datetime.datetime.strptime(str_time1,'%Y-%m-%d %H:%M:%S')
# 格式化-->時間戳
time_stamp = time.mktime(struct_time.timetuple()) # 1509636585.0
時間之間的計算
# 時間之間的間隔
# 1.時間延遲、提前的計算
now =datetime.datetime.now()
# 明天這時候
tomorrow_now = now + datetime.timedelta(days=1)
# 昨天這時候
yes_now = now + datetime.timedelta(days=-1)
# 2.兩個時間的差值
days = (tomorrow_now - yes_now).days # 2
# 1.時間延遲、提前的計算
now =datetime.datetime.now()
# 明天這時候
tomorrow_now = now + datetime.timedelta(days=1)
# 昨天這時候
yes_now = now + datetime.timedelta(days=-1)
# 2.兩個時間的差值
days = (tomorrow_now - yes_now).days # 2