文章目錄
版本:
- Python2
- Python3
Python的time模塊中時間表現的形式有三種
struct_time
時間元組timestamp
時間戳- 格式化的時間字符串
時間(struct_time)
類似於new一個時間實例
適合獲取年月日時分秒,以及其他操作等等,
通過time.localtime()
可以生成一個struct_time
,
時間戳(timestamp)
顧名思義,就是一個時間戳,單位是秒
適合進行時間的加減,time
模塊不能直接對時間進行加減,比如說加1個小時,1天,只能通過時間戳進行加減
字符串
適合打印輸出
相互轉化
轉化關係
字符串與時間之間的轉換
字符串轉時間
print(
(
"字符串轉時間: time.strptime(\"2019-10-08 20:30:00\", \"%Y-%m-%d %H:%M:%S\")"
" --> {}"
).format(
time.strptime("2019-10-08 20:30:00", "%Y-%m-%d %H:%M:%S")
)
)
返回結果:
字符串轉時間:
time.strptime("2019-10-08 20:30:00", "%Y-%m-%d %H:%M:%S") -->
time.struct_time(
tm_year=2019,
tm_mon=10,
tm_mday=8,
tm_hour=20,
tm_min=30,
tm_sec=0,
tm_wday=1,
tm_yday=281,
tm_isdst=-1
)
時間轉字符串
t = time.localtime()
print("時間轉字符串: time.strftime(\"%Y-%m-%d %H:%M:%S\", t) --> {}".format(
time.strftime("%Y-%m-%d %H:%M:%S", t)
))
返回結果:
時間轉字符串: time.strftime("%Y-%m-%d %H:%M:%S", t) --> 2019-10-08 14:22:31
時間與時間戳之間的轉換
時間轉時間戳
t = time.localtime()
print("時間轉時間戳: time.mktime(t) --> {}".format(time.mktime(t)))
返回結果:
時間轉時間戳: time.mktime(t) --> 1570515751.0
時間戳轉時間
sec = time.time()
print("時間戳轉時間: time.localtime(sec) --> {}".format(time.localtime(sec)))
返回結果:
時間戳轉時間: time.localtime(sec) --> time.struct_time(
tm_year=2019,
tm_mon=10,
tm_mday=8,
tm_hour=14,
tm_min=22,
tm_sec=31,
tm_wday=1,
tm_yday=281,
tm_isdst=0
)
字符串與時間戳之間的轉換
字符串與時間戳之間的轉換需要先轉成時間類再向目標類型轉換
字符串轉時間戳
轉換過程: 字符串 --> 時間 --> 時間戳
f = "2019-10-03 10:45:00"
df = "%Y-%m-%d %H:%M:%S"
t = time.strptime(f, df)
sec = time.mktime(t)
print("字符串轉時間戳: sec = {}".format(sec))
返回結果:
字符串轉時間戳: sec = 1570070700.0
時間戳轉字符串
時間戳 --> 時間 --> 字符串
sec = 1570070700
t = time.localtime(sec)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", t)
print("時間戳轉字符串: time_str= {}".format(time_str))
返回結果:
時間戳轉字符串: time_str= 2019-10-03 10:45:00
獲取當時時間
獲取當時間
time.localtime()
獲取當時時間的時間戳
time.time()
獲取當時時間特定格式的字符串
這種格式的時間字符串我們中國地區用得比較少,可以忽略不計
time.asctime()
time.ctime()
返回結果:
time.asctime() --> Tue Oct 8 14:30:49 2019
time.ctime() --> Tue Oct 8 14:30:49 2019
時間的加減
time模塊時間的加減只能通過timestamp加減對應的秒數,然後再轉回去
如果給定的是時間字符串的話
只能先把字符串先轉爲時間, 再轉爲時間戳,
然後對時間戳進行加減, 加減過後再轉回時間,再轉回字符串
這樣挺麻煩的,推薦使用datetime模塊
下面給出一個時間字符串加3個小時,並打印結果:
t = time.strptime("2019-10-03 10:45:00", "%Y-%m-%d %H:%M:%S")
sec = time.mktime(t)
sec += 3 * 60 * 60
t1 = time.localtime(sec)
s1 = time.strftime("%Y-%m-%d %H:%M:%S", t1)
print("加3小時後的時間爲: {}".format(s1))
返回結果:
原時間爲: 2019-10-03 10:45:00
加3小時後的時間爲: 2019-10-03 13:45:00