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