zoukankan      html  css  js  c++  java
  • python学习之

    时间模块
    模块名:time
    时间模块的转换流程图。


    UTC:英国格林威治时间。
    时间戳作用:是用来进行时间计算的。进行加减时间。
    注意:时间计算是用秒为单位
    time.process_time():测量处理器运算时间,不包括sleep时间。
    time.altzone:返回与utc时间的时间差,以秒计算。print(time.altzone) 结果:14400
    time.asctime():返回时间格式。'Tue May 9 02:19:05 2017'
    time.ctime():返回当前时间。 'Tue May 9 02:55:11 2017'
    time.localtime():将时间戳转换为当前时间元组
        time.struct_time(tm_year=2017, tm_mon=5, tm_mday=9, tm_hour=2, tm_min=25, tm_sec=15, tm_wday=1, tm_yday=129, tm_isdst=1)
    提取方法:print(t.tm_year)
    如果增加3小时:
    time.localtime(time.time + 3600*3)
    time.time():打印的是时间戳,从1970年1月1日00:00:00到现在为止一共的时间数(单位为秒),表现为:1494311684.9523735
        为什么是1970年,因为把这个时间作为unix的诞生元年。
    time.gmtime():将时间戳转换为时间对象
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=9, tm_hour=6, tm_min=38, tm_sec=19, tm_wday=1, tm_yday=129, tm_isdst=0)
    time.mktime():将时间对象转换为时间戳

    time.strptime():将指定格式的时间字符串转换为时间对象
    time.strftime():将时间对象转换为指定格式的时间字符串

    时间参数参考
    1 %a 本地(locale)简化星期名称
    2 %A 本地完整星期名称
    3 %b 本地简化月份名称
    4 %B 本地完整月份名称
    5 %c 本地相应的日期和时间表示
    6 %d 一个月中的第几天(01 - 31)
    7 %H 一天中的第几个小时(24小时制,00 - 23)
    8 %I 第几个小时(12小时制,01 - 12)
    9 %j 一年中的第几天(001 - 366)
    10 %m 月份(01 - 12)
    11 %M 分钟数(00 - 59)
    12 %p 本地am或者pm的相应符
    13 %S 秒(01 - 61)
    14 %U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
    15 %w 一个星期中的第几天(0 - 6,0是星期天)
    16 %W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
    17 %x 本地相应日期
    18 %X 本地相应时间
    19 %y 去掉世纪的年份(00 - 99)
    20 %Y 完整的年份
    21 %Z 时区的名字(如果不存在为空字符)
    22 %% ‘%’字符

    举例:将指定时间减3小时然后打印出时间字符串
    方法1:
    1     import time
    2     # 将字符串时间转换为时间对象
    3     t1=time.strptime('2016-05-09 16:34','%Y-%m-%d %H:%M')
    4     # 将t1时间对象转换为时间戳,通过减2小时运算后,在转换成时间对象。
    5     # 注意:最后的加8小时是因为转换为时间戳后,系统会自动根据所属区域进行换算,中国就会自动减8小时,所以我这里手工要加8小时
    6     t2=time.gmtime(time.mktime(t1) - 3600*2 + 3600*8)
    7     # 将运算后的时间对象转换为时间字符串打印
    8     print(time.strftime('%Y-%m-%d %H;%M',t2))
    View Code

    方法2:
    # 以上方法是用time.localtime() 就可以不用单独加8小时
    1     # 先转换为时间对象
    2     t1=time.strptime('2016-05-09 16:34','%Y-%m-%d %H:%M')
    3     # 这里使用localtime 将时间戳运算后,在转换为时间对象
    4     t2=time.localtime(time.mktime(t1)-3600*2)
    5     # 将时间对象转换为时间字符串打印
    6     print(time.strftime('%Y-%m-%d %H;%M',t2))
    View Code
    举例2:使用time模块显示前一天的日期
    1 import time
    2 #这个可以打印昨天的这个时间
    3 print(time.strftime('%Y-%m-%d %H:%M',time.gmtime(time.time()-3600*24+3600*8)))
    4 #这个可以打印昨天的日期
    5 print(time.strftime('%Y-%m-%d',time.gmtime(time.time()-3600*24+3600*8)))
    View Code


    模块名:datetime
    datetime.datetime.now():打印当前时间。 datetime.datetime(2017, 5, 9, 4, 3, 56, 976793)
    datetime.date.fromtimestamp(time.time()):将时间戳直接转换为日期。 2017-05-09
    datetime.datetime.now() + datetime.timedelta(3): 当前时间加3天
    datetime.datetime.now() + datetime.timedelta(-3):当前时间减3天
    datetime.datetime.now() + datetime.timedelta(hours=3):当前时间加3小时
    datetime.datetime.now() + datetime.timedelta(minutes=3):当前时间加3分钟
    时间替换方法:
    t = datetime.datetime.now() #首先获取当前时间
    print(t.replace(year=2015,month=3)) #这里指定替换年为2015,月为3月。 替换参数可以参考帮助。

    时间转换处理实例:
     1 import datetime
     2 # 获取当前时间
     3 d1 = datetime.datetime.now()
     4 print d1
     5 # 当前时间加上半小时
     6 d2 = d1 + datetime.timedelta(hours=0.5)
     7 print d2
     8 # 格式化字符串输出
     9 d3 = d2.strftime('%Y-%m-%d %H:%M:%S')
    10 print d3
    11 # 将字符串转化为时间类型
    12 d4 = datetime.datetime.strptime(date,'%Y-%m-%d %H:%M:%S.%f')
    13 print d4
    View Code

    提取本月的第一天

    datetime.datetime.today() - datetime.timedelta(days=datetime.datetime.now().day - 1)

  • 相关阅读:
    设计模式
    Java Volatile 关键字详解
    设计模式
    设计模式
    java 希尔排序
    java 插入排序
    java 选择排序
    java 枚举
    codeforces 915D Almost Acyclic Graph 拓扑排序
    TYVJ 1728 普通平衡树
  • 原文地址:https://www.cnblogs.com/zy6103/p/6831671.html
Copyright © 2011-2022 走看看