1. 程式人生 > >Python中時間型別的互轉

Python中時間型別的互轉

時間的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