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