--coding:utf-8--
Python提供一个time和calendar模块用于格式化日期和时间
import time
print('当前时间戳:{0}'.format(time.time()))#自1970年,Unix,window只支持2038年
print('获取格式化的时间-本地时间:{0}'.format(time.asctime(time.localtime(time.time()))))
时间格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%l 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 当前时区名称
%%%号本身
locT = time.localtime()
print(time.strftime('%Y-%m-%d-%a- --%H:%M:%S',locT))
Time模块
1.time.altzone 返回格林威治西部的夏令时地区的偏移秒数,如果该地区在格林威治东部会返回负值,对夏令时启用的地区才能使用
altzone = time.altzone
print('time.altzone %d' % altzone)
#2.time.asctime([tupletime]) 接受时间元组返回一个可读的形式为'Tue Dec 11 18:07:14 2008'的24字符的字符串
asctime = time.asctime(locT)
print('time.asctime(t): %s' % asctime)
#3.time.clock() 用以浮点数计算的秒数返回当前的CPU时间,永来衡量不同程序的耗时,过于依赖系统,Python3.8更换为一下两个
perf_counter = time.perf_counter()
process_time = time.process_time()
print('系统运行时间:{0}'.format(perf_counter))
print('进程运行时间:{0}'.format(process_time))
#4.time.ctime([secs]) 相当于asctime(localtime(secs)),未给参数相当于asctime()
ctime = time.ctime()
print('time.ctime(): %s' % ctime)
#5.time.gmtime([secs]) 接受时间戳,返回格林威治天文时间下的时间元组t,tm_isdst始终为0
gmtime = time.gmtime(time.time())
print('gmtime: {0}'.format(gmtime))
#6.time.localtime([secs]) 接受时间戳,返回格林威治天文时间下的时间元组t(t.tm_isdst可取0或者1,取决当地是否夏令时)
localtime = time.localtime(time.time())
print('localtime:{0}'.format(localtime))
#7.time.mktime(tupletime) 接收时间元组返回时间戳
print('mktime:{0}'.format(time.mktime(locT)))
#8.time.sleep(secs) 推迟调用线程的运行,secs指秒数
print('start:%s' % time.ctime())
#time.sleep(2)
print('End:%s' % time.ctime())
#9.time.strftime(fmt[,tupletime]) 接收时间元组,返回可读字符串表示的当地时间,格式由fmt决定
strftime = time.strftime('%Y-%m-%d %H:%M:%S',locT)
print('strftime:{0}'.format(strftime))
#10.time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') 根据fmt格式把时间字符串解析成时间元组
strptime = time.strptime(strftime,'%Y-%m-%d %H:%M:%S')
print('strptime:{0}'.format(strptime))
#11.time.time() 返回当前时间的时间戳
#12.time.tzset() 根据环境变量TZ重新初始化时间相关设置
标准的TZ格式:std offset [dst [offset [,start[/time], end[/time]]]]
std 和 dst:三个或者多个时间的缩写字母。传递给 time.tzname.
offset: 距UTC的偏移,格式: [+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}。
start[/time], end[/time]: DST 开始生效时的日期。格式为 m.w.d — 代表日期的月份、周数和日期。w=1 指月份中的第一周,而 w=5 指月份的最后一周。'start' 和 'end' 可以是以下格式之一:
Jn: 儒略日 n (1 <= n <= 365)。闰年日(2月29)不计算在内。
n: 儒略日 (0 <= n <= 365)。 闰年日(2月29)计算在内
Mm.n.d: 日期的月份、周数和日期。w=1 指月份中的第一周,而 w=5 指月份的最后一周。
time:(可选)DST 开始生效时的时间(24 小时制)。默认值为 02:00(指定时区的本地时间)。
import os
os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
time.tzset()
print('tzset-Start:{0}'.format(time.strftime('%X %x %Z')))
os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
time.tzset()
print('tzset-Start:{0}'.format(time.strftime('%X %x %Z')))
Time 属性
#1.time.timezone 当地时区,距离格林威治的偏移秒数(>0,美洲,<=0大部分欧洲,亚洲非洲)
#2.time.tzname 包含一对根据不同情况而不同的字符串,分别是带夏令时和本地时间和不带的
#日历 Calendar
import calendar
#1.calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c,每日间隔为w的字符,每行长度为21*W+18+2*C,l是每星期行数
cal01 = calendar.calendar(2020,w=3,l=1,c=10)
print(cal01)
#2.calendar.firstweekday() 返回当前每周起始日期的设置,默认情况下,首次载入calendar模块时返回0,即星期一
cal02 = calendar.firstweekday()
print(cal02)
#3.calendar.isleap(year) 判断year是否为闰年
print(calendar.isleap(2020))
#4.calendar.leapdays(y1,y2) 返回在Y1,Y2两年之间的闰年总数
print(calendar.leapdays(1999,2020))
#5.calenda.month(year,month,w=2,l=1) 返回一个多行字符串格式的year年month月日历,一周一行,每日宽度间隔w,每行长度7*w+6,l为每星期行数
cal03 = calendar.month(2020,4,w=5,l=1)
print(cal03)
#6.calendar.monthcalendar(year,month) 返回一个整数的单层嵌套列表,每个子列表装载代表一个星期的整数,Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始
cal04 = calendar.monthcalendar(2020,3)
print(cal04)
#7.calendar.monthrange(year,month) 返回两整数,第一个是该月第一天是星期几(0-6,星期一-星期日),第二个是该月有几天
cal05 = calendar.monthrange(2020,4)
print(cal05)
#8.calendar.prcal(year,w=2,l=1,c=6) 相当于calendar.calendar(year,w,l,c)
cal06 = calendar.prcal(2020,w=2,l=1,c=6)
print(cal06)
#9.calendar.prmonth(year,month,w=2,l=1) 相当于calendar.calendar(year,w,l,c)
#10.calendar.setfirstweekday(weekday) 设置每周的起始日期,0(星期一)到6(星期日)
#11.calendar.timegm(tupletime) 和time.gtime相反:接受一个时间元组形式,返回该时刻的时间戳
cal011 = calendar.timegm(time.localtime())
print('timegm:{0}'.format(cal011)) # 4 星期五
#12.calendar.weekday(year,month,day) 返回指定的日期的日期码0(星期一)到6(星期日),月份1到12
cal12 = calendar.weekday(2020,4,3)
print('weekday:{0}'.format(cal12)) # 4 星期五
网友评论