Python 日期和時間*
Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。
Python 提供了一個 time 和 calendar 模塊可以用於格式化日期和時間。
import time
import datetime
from datetime import datetime, timedelta
# 1. datetime.now() 返回當前時間的對象
print(datetime.now()) # 2018-11-24 11:05:00.795514
# 2. 創建datetime對象
dt = datetime(2018, 11, 24, 11, 5, 00)
print(dt.year) # 2018
print(dt.month) # 11
# 3. 日期加減 應用場景:判斷活動截止;定時任務
print(datetime.now() + timedelta(day= -1, hours=10))
# 2018-11-23 21:08:08.910274
# 4. 格式化輸出 strftime()
print(datetime.now().strftime('%Y/%m/%d %H:%M:%S'))
# 2018/11/24 11:10:39
# %Y 2018 年 %y 18 year %m month 月 %d day 日
# %H hour 時 %M minute 分鐘 %S seconds 秒
# 5. 時間戳轉datetime對象
print(datetime.fromtimestamp(1543027909))
# 2018-11-24 10:51:49
# 6. 字符串轉時間對象 strp--parse解析的意思
dtatr = '2018-11-24T11:25:03.401Z'
dt = datetime.strptime(dtatr, '%Y-%m-%dT%H:%M:%S.%fZ')
print(dt) # 2018-11-24 11:25:03.401000
# time
# 1> (常用)生成時間戳 time()
# 整數形式的時間戳 timestamp:當前時間 減去 1970-1-1 0:0:0 的秒數。
# 把時間量化成數字,比較時間先後順序,計算轉換有優勢。缺點可讀性差,默認長度只能表示到2030年。
print(time.time()) # 1543030087.9888575
# 2> 生成本地時間
print(time.localtime())
# time.struct_time(tm_year=2018, tm_mon=11, tm_mday=24, tm_hour=11, tm_min=28, tm_sec=50, tm_wday=5, tm_yday=328, tm_isdst=0)
# 3> (常用)格式化時間 strftime asctime
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
# 2018-11-24 11:29:39
ww = time.asctime(time.localtime(time.time()))
print(ww) # Sat Nov 24 11:37:33 2018
# 4> 字符串轉time結構
tmobj = time.strptime('2018-11-24T11:25:03.401Z', '%Y-%m-%dT%H:%M:%S.%fZ')
print(tmobj)
# time.struct_time(tm_year=2018, tm_mon=11, tm_mday=24, tm_hour=11, tm_min=25, tm_sec=3, tm_wday=5, tm_yday=328, tm_isdst=-1)
# 5> 從time結構對象生成數字時間戳 make
print(time.mktime(tmobj)) # 1543029903.0
# 將格式字符串轉換爲時間戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))) # 1459175064.0
# 6> time.sleep() 場景:操作溫溼度傳感器,每5s打印一次
time.sleep(5)
獲取某月日曆
Calendar模塊有很廣泛的方法用來處理年曆和月曆,例如打印某月的月曆:
import calendar
cal = calendar.month(2018, 11)
print('以下輸出2018年11月份的日曆')
print(cal)
上例輸出效果如下:
以下輸出2018年11月份的日曆
November 2018
Mo Tu We Th Fr Sa Su
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30