1. 程式人生 > >time模塊

time模塊

方式 localtime strftime 一個 錯誤 cal png bsp ima

一、簡介

1.在python中通常有這幾種方式表示時間:

  1) 時間戳

2) 格式化的時間字符串

3) 時間元組(struct_time)共九個元素

2. UTC亦即格林威治時間,世界標準時間。在中國為 UTC+8。

3. 時間戳(timestamp):通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。返回時間戳方式的函數主要有time()等。

4.時間元組(struct_time)方式:struct_time共有9個元素,返回struct_time的主要函數有gmtime(),localtime(),strptime()。如下:

  技術分享

二、時間函數

import time

1. time.time() 返回當前時間的時間戳

t = time.time()
print(t)

# 輸出
1495016507.4327872

  

2. time.localtime() 將一個時間戳轉換為當前時區的struct_time。secs參數未提供,則以當前時間為準

t1 = time.localtime()
print(t1)

#輸出
time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=18, tm_min=22, tm_sec=54, tm_wday=2, tm_yday=137, tm_isdst=0)

  

3.time.gmtime() 和localtime()方法類似,gmtime()方法是將一個時間戳轉換為UTC時區(0時區)的struct_time。

t3 = time.gmtime()
print(t3)

# 輸出
time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=10, tm_min=22, tm_sec=54, tm_wday=2, tm_yday=137, tm_isdst=0)

  可以看到 tm_hour 和 上面的相差了8個小時

4. time.mktime() 將一個struct_time轉化為時間戳。

print(time.mktime(t1))

# 輸出
1495016896.0

5.time.asctime() 把一個表示時間的元組或者struct_time表示為這種形式:‘Sun Jun 20 23:21:05 1993‘。如果沒有參數,將會將time.localtime()作為參數傳入。

print(time.asctime())

# 輸出
Wed May 17 19:09:05 2017

 

6. time.ctime() 同上

7.time.strftime(format,t)

把一個代表時間的元組或者struct_time(如由time.localtime()和time.gmtime()返回)轉化為格式化的時間字符串。如果t未指定,將傳入time.localtime()。如果元組中任何一個元素越界,ValueError的錯誤將會被拋出。

t = time.localtime()
print(t)

print(time.strftime("%Y-%m-%d %X", t))

# 輸出

time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=19, tm_min=16, tm_sec=4, tm_wday=2, tm_yday=137, tm_isdst=0)
2017-05-17 19:16:04

  技術分享

8.time.strptime(string[, format]):把一個格式化時間字符串轉化為struct_time。實際上它和strftime()是逆操作。

t = "2017-05-16 17:23:12"

print(time.strptime(t, "%Y-%m-%d %H:%M:%S"))

# 輸出
time.struct_time(tm_year=2017, tm_mon=5, tm_mday=16, tm_hour=17, tm_min=23, tm_sec=12, tm_wday=1, tm_yday=136, tm_isdst=-1)

  

三、時間轉換

1. 格式化字符串 --- 時間戳

import time
print("格式化字符串".center(20, ‘-‘))
t = "2017-05-16 17:23:12"
print(t)
print("時間元組".center(20, ‘-‘))
t1 = time.strptime(t, "%Y-%m-%d %H:%M:%S")
print(t1)
print("時間戳".center(20, ‘-‘))
t2 = time.mktime(t1)
print(t2)

# 輸出
-------格式化字符串-------
2017-05-16 17:23:12
--------時間元組--------
time.struct_time(tm_year=2017, tm_mon=5, tm_mday=16, tm_hour=17, tm_min=23, tm_sec=12, tm_wday=1, tm_yday=136, tm_isdst=-1)
--------時間戳---------
1494926592.0

  

2. 時間戳 --- 格式化字符串

import time
print("時間戳".center(20, ‘-‘))
t = time.time()
print(t)

print("時間元組".center(20, ‘-‘))
t1 = time.localtime(t)    # 如果此處用 time.gmtime()則生成的時間元組會和本地時間有一個UTC時間差
print(t1)

print("格式化字符串".center(20, ‘-‘))
t2 = time.strftime("%Y-%m-%d %X", t1)
print(t2)

# 輸出

--------時間戳---------
1495020952.5951612
--------時間元組--------
time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=19, tm_min=35, tm_sec=52, tm_wday=2, tm_yday=137, tm_isdst=0)
-------格式化字符串-------
2017-05-17 19:35:52

  

技術分享

time模塊