python---关于时间的处理(一)

作者: 小蜗牛的成长 | 来源:发表于2017-07-19 16:55 被阅读0次

    因为测试需要,最近2天重新整理了一遍从ftp下载原始数据文件及分析数据的脚本,发现对时间方面的处理不是很顺畅,查了不少资料及API文档

    在python中关于时间处理主要用到2个模块,即datetime、time库。补充一点: 学习一个库,直接查看API文档是最快捷的方式,即 python3 -m pydoc -b

    • time
    • time(),返回从1970年1月1日至今的秒数,浮点类型
    • gmtime(),将秒数转化成utc 时间的元组,参数可默认,可指定,默认传入的秒数为当前时间的秒数,转化后的元组格式如:time.struct_time(tm_year=2017, tm_mon=7, tm_mday=19, tm_hour=7, tm_min=35, tm_sec=2, tm_wday=2, tm_yday=200, tm_isdst=0)
    • localtime(),将秒数转化成当前位置时区的时间元组,参数可默认,可指定,默认是返回当前时间的时间元组。用法类似gmtime(),区别为返回的元组,localtime()返回当前位置时区的时间元组,加上了时区,gmtime()为utc时间元组,即0时区
    • asctime(),将时间元组转化成字符串类型,参数默认是当前时间,可指定,返回结果格式类似Wed Jul 19 15:46:13 2017
    • mktime(),将时间元组转化成秒数,需指定参数,返回结果为浮点类型
    • strftime(format[, [tuple])将时间元组转化成指定格式的字符串,格式说明见后面的附录
    • strptime(string, format)将时间字符串按照指定格式转化成时间元组,约束了输入的时间格式

    **综上所述: **
    产生时间元组的方法:gmtime()localtime()strptime()
    产生秒数(此处为浮点型)的方法:time()mktime()
    将时间用字符串格式表示的方法:strftime()asctime()
    示例:
    将指定时间字符串转化成utc时间

    import time
    def getUTCTime(ptime):#输入的时间格式要求:'%Y/%m/%d %H:%M'
           time_tuple=time.strptime(ptime,'%Y/%m/%d %H:%M')
           seconds=time.mktime(time_tuple)
           utc_tuple=time.gmtime(seconds)
           formattime=time.strftime("%Y-%m-%d %H:%M",utc_tuple)
           print(time_tuple)
           print(seconds)
           print(utc_tuple)
           print(formattime)
    getUTCTime("2017/12/2 23:55")
    #结果
    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=23, tm_min=55, tm_sec=0, tm_wday=5, tm_yday=336, tm_isdst=-1)
    1512230100.0
    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=15, tm_min=55, tm_sec=0, tm_wday=5, tm_yday=336, tm_isdst=0)
    2017-12-02 15:55
    

    附录:
    转化格式说明,直接摘录了一篇博客,便于后续使用时再去查找,这里写得比API文档更为详细,感谢!同时附上博客地址:http://blog.csdn.net/chuan_day/article/details/73692278
    %a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE)
    %A 本地星期全名称 如 :Sunday, Monday, ..., Saturday (en_US);Sonntag, Montag, ..., Samstag (de_DE)
    %w 星期的数字表示,0表示周日,6表示周六 如:0,1,2,,,6
    %d 日的数字表示,并且使用0来填补(0-9),如:01, 02, ..., 31
    %b 月份的短名称显示,英文单词简写,如:Jan, Feb, ..., Dec (en_US);Jan, Feb, ..., Dez (de_DE)
    %B 月份的全名称显示,如:January, February, ..., December (en_US);Januar, Februar, ..., Dezember (de_DE)
    %m 月份数字显示,并且用0来补全,如:01, 02, ..., 12
    %y 年份的数字表示,两位表示,如:00, 01, ..., 99
    %Y 年份的数字表示,四位表示,如:0001, 0002, ..., 2013, 2014, ..., 9998, 9999
    %H 24小时制表示,如:00, 01, ..., 23
    %I 12小时制表示,如:01, 02, ..., 12
    %p 上下午的表示,如:AM,PM
    %M 分钟,并且用0补全(0-9),如:00, 01, ..., 59
    %S 秒钟,并且用0补全(0-9),如:00, 01, ..., 59
    %f 微妙表示,如:000000, 000001, ..., 999999
    %z 时区偏移量,如:(empty), +0000, -0400, +1030
    %Z 时区名称,如:(empty), UTC, EST, CST
    %j 全年中的哪一个,用0补全,如:001, 002, ..., 366
    %U 全年中的第几个星期,sunday为第一天如:00, 01, ..., 53
    %W 全年中的第几个星期,monday为第一天如:00, 01, ..., 53
    %c 本地时间,如:06/24/17 15:43:10
    %x 本地日期,如:08/16/88 (None);
    %X 本地时间,如:21:30:00 (en_US);
    %% %符号

    相关文章

      网友评论

        本文标题:python---关于时间的处理(一)

        本文链接:https://www.haomeiwen.com/subject/poplkxtx.html