L1.4.2 time時間處理

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章