AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
| 时间日期处理 | | | --- | --- | import time; # 引入time模块 ticks = time.time() # 1459994552.51 # 其它处理日期和时间的模块 # import Calendar # import datetime # import pytz # import dateutil | time 模块时间的基本处理 | | | --- | --- | | time.time() | 1547911729.4856396,返回当前浮点型时间戳 | | int(time.time()) | 1547911729,返回当前整型时间戳 | | time.mktime(time.localtime()) | 1565659988.0,返回当前整型时间戳 | | int(time.mktime(time.localtime())) | 1565659988.0,返回当前浮点型时间戳 | | time.mktime(time.strptime("2019-08-13 12:13:24", "%Y-%m-%d %H:%M:%S")) | 1566230400.0,将日期格式转为时间戳 | | time.process_time() | 5.1948333,获取处理器运算时间,不包括sleep时间 | | time.localtime() | time.struct_time(tm_year=2019, tm_mon=8, tm_mday=13, tm_hour=9, tm_min=16, tm_sec=34, tm_wday=1, tm_yday=225, tm_isdst=0),获取当前时间元组 | | time.localtime()[0] | 2019,从时间元组中获取年份,月份等以此类推修改索引获取 | | time.asctime(time.localtime()) | Tue Aug 13 09:36:16 2019,获取当前时间格式时间 | | time.asctime(time.localtime(1538271871.226226)) | Tue Aug 13 09:36:16 2019,获取当前时间格式时间 | | time.asctime(time.localtime(time.time())) | Tue Aug 13 09:36:16 2019,获取当前时间格式时间 | | time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) | 2019-08-13 09:37:00,获取当前日期格式时间 | | time.strftime('%Y-%m-%d %H:%M:%S') | 2019-08-13 09:37:00,获取当前日期格式时间 | | time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) | Tue Aug 13 09:41:48 2019,获取当前日期格式时间 | | time.strptime('2018-9-30 11:32:23', '%Y-%m-%d %H:%M:%S') | time.struct_time(tm_year=2018, tm_mon=9, tm_mday=30, tm_hour=11, tm_min=32, tm_sec=23, tm_wday=6, tm_yday=273, tm_isdst=-1),日期格式时间转时间元组 | | time.clock() | 0.306500204,浮点数秒数,用于衡量不同程序的耗时,前后两次调用的时间差 | | time.mktime(time.strptime("Sat Mar 28 22:24:24 2016","%a %b %d %H:%M:%S %Y")) | 1459175064.0,将格式字符串转换为时间戳 | | | | | time.ctime() | Tue Aug 13 09:45:37 2019,获取当前时间格式时间 | | time.gmtime(time.time()-86640) | time.struct_time(tm_year=2019, tm_mon=8, tm_mday=12, tm_hour=1, tm_min=44, tm_sec=17, tm_wday=0, tm_yday=224, tm_isdst=0),将utc时间戳转换成struct_time格式 | | time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) | 2019-01-19 15:43:41,将utc struct_time格式转成指定的日期格式 | ``` 打印月日历 cal = calendar.month(2016, 1) print "以下输出2016年1月份的日历:" print cal 以下输出2016年1月份的日历: January 2016 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 31 ``` | Time模块内置函数 | | | --- | --- | | time.altzone | 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用 | | time.asctime([tupletime]) | 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串 | | time.clock( ) | 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用 | | time.ctime([secs]) | 作用相当于asctime(localtime(secs)),未给参数相当于asctime() | | time.gmtime([secs]) | 接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0 | | time.localtime([secs]) | 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时) | | time.mktime(tupletime) | 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数) | | time.sleep(secs) | 推迟调用线程的运行,secs指秒数 | | time.strftime(fmt[,tupletime]) | 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定 | | time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') | 根据fmt的格式把一个时间字符串解析为时间元组 | | time.time( ) | 返回当前时间的时间戳(1970纪元后经过的浮点秒数) | | time.tzset() | 根据环境变量TZ重新初始化时间相关设置 | | time.timezone | 属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲) | | time.tzname | 属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的 | | 时间元组 | | | | --- | --- | --- | | 字段 | 属性 | 值 | | tm_year | 4位数年 | 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是决定是否为夏令时的旗帜 | | 时间日期格式化符号 | | | --- | --- | | %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 | 当前时区的名称 | | %% | %号本身 | | 日历(Calendar)模块 | | | --- | --- | | 此模块的函数都是日历相关的,例如打印某月的字符月历 | 星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数 | | calendar.calendar(year,w=2,l=1,c=6) | 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数 | | calendar.firstweekday( ) | 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一 | | calendar.isleap(year) | 是闰年返回 True,否则为 False | | calendar.leapdays(y1,y2) | 返回在Y1,Y2两年之间的闰年总数 | | calendar.month(year,month,w=2,l=1) | 返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数 | | calendar.monthcalendar(year,month) | 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始 | | calendar.monthrange(year,month) | 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12 | | calendar.prcal(year,w=2,l=1,c=6) | 相当于 print calendar.calendar(year,w,l,c) | | calendar.prmonth(year,month,w=2,l=1) | 相当于 print calendar.calendar(year,w,l,c) | | calendar.setfirstweekday(weekday) | 设置每周的起始日期码。0(星期一)到6(星期日) | | calendar.timegm(tupletime) | 和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数) | | calendar.weekday(year,month,day) | 返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月) | | datetime模块 | | | --- | --- | ``` import datetime i = datetime.datetime.now() print ("当前的日期和时间是 %s" % i) print ("ISO格式的日期和时间是 %s" % i.isoformat() ) print ("当前的年份是 %s" %i.year) print ("当前的月份是 %s" %i.month) print ("当前的日期是 %s" %i.day) print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) ) print ("当前小时是 %s" %i.hour) print ("当前分钟是 %s" %i.minute) print ("当前秒是 %s" %i.second) print("当前格式化日期:" . datetime.date.today().strftime('%Y-%d-%m')) #2019-07-10 datetime.date.today()+datetime.timedelta(hours=-12) #输出 2019-07-09 #字符串日期转换为易读的日期格式 from dateutil import parser print parser.parse("Aug 28 2015 12:00AM") #2015-08-28 00:00:00 ``` | datetime 模块时间的基本处理 | | | --- | --- | | datetime.datetime.now() | 2019-08-13 09:50:26.207962,获取当前日期格式时间 | | datetime.datetime(2019, 1, 20, 0, 3, 39, 547184) | 2019-01-20 00:03:39.547184,将时间元组格式转为日期格式 | | datetime.date.fromtimestamp(time.time()) | 2019-08-13,时间戳转日期格式 | | datetime.date(2019, 1, 20) | 2019-01-20 | | datetime.datetime.now() + datetime.timedelta(3) | 2019-08-16 09:55:00.634940,当前时间 +3 天 | | datetime.datetime.now() + datetime.timedelta(-3) | 2019-08-16 09:55:00.634940,当前时间 -3 天 | | datetime.datetime.now() + datetime.timedelta(hours=3) | 2019-08-16 11:55:00.634940,当前时间 +3 小时 | | datetime.datetime.now() + datetime.timedelta(minutes=30) | 2019-08-16 10:25:00.634940,当前时间 +30 分钟 | | (datetime.datetime.now()).replace(minute=3,hour=2) | 2019-08-13 02:03:23.988241,时间替换 | | datetime.date.today().weekday() | 1,当前的星期,0-6 | | datetime.date.today().isoweekday() | 1,当前的星期,0-6 |