您好,登錄后才能下訂單哦!
1.時間類型劃分
import time
time模塊那么多方法,如何區分?
根據時間格式劃分為:
a)時間戳
b)struct_time格式(時間格式,可以輕松獲取年月日,時分秒各個值)
c)字符串時間(可讀性好)
下面逐一詳解(以下操作在jupyter,python3.x版本操作)
跟著感覺走:
什么是時間戳?就是一個大的浮點數,計算機用來記錄時間用的,大概好像是1970年的某年月開始的。
獲取時間戳正確姿勢:
import time
t=time.time()
t
結果:
1582968461.3394606
獲取時間戳,對我們來說意義不大,怎么獲取對應的年與日時分秒?
struct_time是一個對象,類似元組,主要包含時間信息
屬性 | 說明 |
---|---|
tm_year | 年 |
tm_mon | 月[01,31] |
tm_mday | 日 |
tm_hour | 小時 [ 00,12] |
tm_min | 分鐘 [00,59] |
tm_sec | 秒 [00,59] |
tm_wday | 星期 [0,6] |
tm_yday | 從每年的1月1日開始的天數 |
tm_isdst | 夏令時(暫時忽略) |
有了這個結構,獲取時間太easy,如何獲取?
#獲取當前時間
st = time.localtime()
#獲取年
print(st.tm_year)
#獲取小時
print(st.tm_hour)
#時間戳轉struct_time
t=1582968461
print(time.localtime(t))
輸出結果:
2020
17
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=17, tm_min=27, tm_sec=41, tm_wday=5, tm_yday=60, tm_isdst=0)
time.ctime(seconds):將時間戳轉成可讀字符串
#獲取當前時間
print(time.ctime())
#時間戳轉字符串
t=1582968461
print(time.ctime(t))
輸出結果:
Sat Feb 29 17:46:18 2020
Sat Feb 29 17:27:41 2020
主要下面幾個操作:
方法 | 說明 |
---|---|
time.mktime(tuple) | struct_time轉時間戳 |
time.asctime([tuple]) | struct_time轉時間日期字符串 |
time.strftime(format[, tuple]) | struct_time轉指定時間格式字符串 |
先來看前兩個操作:
#獲取當前時間
st = time.localtime()
#struct_time轉時間戳
print(time.mktime(st))
#struct_time轉字符串
print(time.asctime(st))
輸出結果:
1582974399.0
Sat Feb 29 19:06:39 2020
如何將struct_time轉自定義格式字符串?
time.strftime(format[, tuple]):format為指定格式,tuple為struct_time對象
format格式可以通過help(time.strftime)查看,主要格式如下:
格式 | 說明 |
---|---|
%Y | 年份:[xxxx] |
%y | 年份:[xx],不帶世紀 |
%m | 月份:[01,12] |
%d | 日:[01,,3] |
%H | 小時:[00,23] |
%M | 分:[00,59] |
%S | 秒:[00,59] |
%x | 日期:[月/日/年份] |
%X | 時間:[時:分:秒] |
例子:
st = time.localtime()
#年-月-日
print(time.strftime('%Y-%m-%d', st))
#時-分-秒
print(time.strftime('%H-%M-%S',st))
#年-月-日 時:分:秒
print(time.strftime('%Y-%m-%d %H:%M:%S', st))
結果:
2020-02-29
19-19-31
2020-02-29 19:19:31
比如將"2020-02-29 19:19:31"轉成struct_time或者時間戳如何操作?
strptime(string, format),與strftime相反,具體操作:
s = '2020-02-29 19:19:31'
st = time.strptime(s,'%Y-%m-%d %H:%M:%S')
print(st)
輸出結果:
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=19, tm_sec=31, tm_wday=5, tm_yday=60, tm_isdst=-1)
以上就是時間轉換主要方法。
#獲取當前時間錯
t = time.time()
print(t)
#轉成struct_time
st = time.localtime(t)
print(st)
#st轉自定義格式字符串
s = time.strftime('%Y-%m-%d %H:%M:%S', st)
print(s)
輸出結果:
1582975571.0656374
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=26, tm_sec=11, tm_wday=5, tm_yday=60, tm_isdst=0)
2020-02-29 19:26:11
s = '2020-02-29 19:26:11'
#字符串轉struct_time
st = time.strptime(s,'%Y-%m-%d %H:%M:%S')
print(st)
#struct_time轉時間戳
t = time.mktime(st)
print(t)
結果:
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=26, tm_sec=11, tm_wday=5, tm_yday=60, tm_isdst=-1)
1582975571.0
記住這幾個操作,能夠滿足大部分需求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。