时间的表示
计算机中时间的表示是从"1970 年 1 月 1 日 00:00:00"开始,以毫秒(1/1000 秒)
进行计算。我们也把 1970 年这个时刻成为"unix 时间点"
python 中可以通过 time.time() 获得当前时刻,返回的值是以秒为单位,带微秒
(1/1000 毫秒)精度的浮点值。例如:1530167364.8566
import time
nowTime = time.time()
print(nowTime) #1558233771.407506 整数部分为秒,小数部分为微妙
nowTimeint = int(nowTime) #将浮点数时间转为整型值时间
minuteTime = nowTimeint//60
print(minuteTime) #整数除,获取分钟数
hourTime = minuteTime//60
print(hourTime) #整数除,获取小时数
dayTime = hourTime//24
print(dayTime) #整数除,获取天数
什么是时间元组?
很多Python函数用一个元组装起来的9组数字处理时间:
字段 值
四位数年 2008
月 1到12
日 1到31
小时 0到23
分钟 0到59
秒 0到61(60或61是闰秒)
一周的第几日 0到6(0是周一)
一年的第几日 1到365
夏令时 -1,0,1,-1是决定是否为夏令时的旗帜
上述也就是struct_time元组。这种结构具有如下属性:
属性 值
tm_year 2008
tm_mon 1 到 12
tm_mday 1 到 31
tm_hour 0 到 23
tm_min 0 到 59
tm_sec 0 到 61 (60或61 是闰秒)
tm_wday 0到6 (0是周一)
tm_yday 一年中的第几天,1 到 366
tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1
1、获取当前时间
import time
print(time.localtime(time.time()))
结果:
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=19, tm_hour=23, tm_min=5, tm_sec=34, tm_wday=1, tm_yday=323, tm_isdst=0)
2、获取格式化的时间
localtime=time.asctime(time.localtime(time.time()))
print(localtime)
结果:Tue Nov 19 23:09:45 2019
3、格式化日期
time.strftime(format[, t])
#格式化成2019-11-19 23:21:54形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
结果:2019-11-19 23:21:54
#格式化成Tue Nov 19 23:26:42 2019形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
结果:Tue Nov 19 23:26:42 2019
#将格式字符串转换为时间戳
times='2019-11-19 23:26:42'
print(time.mktime(time.strptime(times,'%Y-%m-%d %H:%M:%S')))
结果:1574177202.0
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
import calendar
print(calendar.month(2019,11))
结果:打印2019年11月份的日历