簡介
在數據處理當中,經常會碰到處理時間的問題。比如:在序列預測的過程中,需要通過學習一段時間的數據,去預測未來一段時間的結果。這時候就要用到時間(time、datetime、calendar)模塊,今天介紹時間模塊中的time
模塊。
一、time模塊
在Python中有三種表示時間到方式:
a、timestamp時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量
b、struct_time時間元組,共有九個元素組。
c、format time 格式化時間,已格式化的結構使時間更具可讀性。包括自定義格式和固定格式。
其中格式化時間中每個字符的含義如下
符號 | 描述 |
---|---|
%a | 簡化星期名稱 |
%A | 完整星期名稱 |
%b | 簡化月份名稱 |
%B | 完整月份名稱 |
%c | 相應的日期和時間表示 |
%d | 一個月中的第幾天(01 – 31) |
%H | 一天中的第幾個小時(24小時制,00 – 23) |
%I | 第幾個小時(12小時制,01 – 12) |
%j | 一年中的第幾天(001 – 366) |
%m | 月份(01 – 12) |
%M | 分鍾數(00 – 59) |
%p | 本地am或者pm的相應符 |
%S | 秒(01 – 61) |
%U | 一年中的星期數。(00 – 53星期天是一個星期的開始。)第一個星期天之前的所有天數都放在第0周 |
%w | 一個星期中的第幾天(0 – 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一為一個星期的開始 |
%x | 相應日期 |
%X | 相應時間 |
%y | 去掉世紀的年份(00 – 99) |
%Y | 完整的年份 |
%Z | 時區的名字(如果不存在為空字符) |
%% | ‘%’字符 |
在元組中會有9項參數,如下表所示:
關鍵字 | 描述 |
---|---|
tm_year | 年 |
tm_mon | 月(1-12) |
tm_mday | 日(1-31) |
tm_hour | 時(0-23) |
tm_min | 分(0-59) |
tm_sec | 秒(0-61),閏年多兩秒 |
tm_wday | 周一-周日(0-6) |
tm_yday | 一年中第幾天(1-366) |
tm_isdst | 是否夏令時(1:是;0:不是;-1:未知;默認 -1) |
這里介紹一些常用命令:
1、time.time()
描述:該函數返回當前時間到時間戳,也就是距離1970年1月1日00:00:00到差值。
代碼如下:
time.time()
#1563030732.796513
2、time.localtime()
描述:該函數能將一個時間戳轉換成元祖的形式,如果沒有指定時間戳,默認使用當前時間的時間戳。需要注意的是返回的時間是當地時間。
代碼如下:
time.localtime(1563030732.796513)
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=23, tm_min=12, tm_sec=12, tm_wday=5, tm_yday=194, tm_isdst=0)
time.localtime()
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=23, tm_min=16, tm_sec=41, tm_wday=5, tm_yday=194, tm_isdst=0)
3、time.gmtime()
描述:該函數和localtime()的功能一樣,只是它返回的時間是格林威治天文時間(UTC),也就是世界標准時間。中國時間為UTF+8
代碼如下:
time.gmtime()
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=15, tm_min=19, tm_sec=10, tm_wday=5, tm_yday=194, tm_isdst=0)
4、time.mktime()
描述:該函數將一個元祖轉換成時間戳。
代碼如下:
time.mktime(time.localtime())
#1563031277.0
5、time.sleep()
描述:該函數能讓程序暫停休息,傳入幾秒,休息幾秒
6、time.asctime()
描述:該函數將一個元祖轉換成格式化時間。如果沒有傳入參數,默認傳入time.localtime()。
代碼如下:
time.asctime()
#'Sat Jul 13 23:24:31 2019'
7、time.ctime()
描述:該函數將一個時間戳轉換成格式化時間。如果沒有傳入參數,默認傳入time.time()。
代碼如下:
time.ctime()
#'Sat Jul 13 23:27:08 2019'
8、time.strftime()
描述:該函數按照格式化字符把一個元祖轉換成格式化時間字符串。如果沒有傳入參數,默認傳入time.localtime()。
代碼如下:
time.strftime("%Y-%m-%d %X", time.localtime())
#'2019-07-13 23:29:11'
9、time.strptime()
描述:該函數按照格式化字符把一個格式化時間字符串轉換成元祖。
time.strptime('2019-07-13 23:29:11', '%Y-%m-%d %X')
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=23, tm_min=29, tm_sec=11, tm_wday=5, tm_yday=194, tm_isdst=-1)