zoukankan      html  css  js  c++  java
  • time模块

    来自:http://www.nnzhp.cn/archives/150

    time&datetime模块

    time和datetime模块主要用于操作时间

    时间有三种表示方式,一种是时间戳、一种是格式化时间、一种是时间元组

     1 import datetime,time        
     2 print(time.timezone)#和标准时间相差的时间,单位是s
     3 print(time.time())#获取当前时间戳
     4 print(time.sleep(1))#休息几s
     5 print(time.gmtime())#把时间戳转换成时间元组,如果不传的话,默认取标准时区的时间戳
     6 print(time.localtime())#把时间戳转换成时间元组,如果不传的话,默认取当前时区的时间戳
     7 print(time.mktime(time.localtime()))#把时间元组转换成时间戳
     8 print(time.strftime("%y%m%d %H%M%S"))#将时间元组转换成格式化输出的字符串
     9 print(time.strptime("20160204 191919","%Y%m%d %H%M%S"))#将格式化的时间转换成时间元组
    10 print(time.struct_time)#时间元组
    11 print(time.asctime())#时间元转换成格式化时间
    12 print(time.ctime())#时间戳转换成格式化时间
    13 print(datetime.datetime.now())#当然时间格式化输出
    14 print(datetime.datetime.now()+datetime.timedelta(3))#3天后的时间
    15 print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的时间

    1、Python获取秒级时间戳与毫秒级时间戳  

    https://www.cnblogs.com/fangbei/p/python-time.html

    import time

    格式化好的时间 20180914 12:08:53

    时间戳: 从计算机诞生那一天到现在过了多少秒

    1 t = time.time() #获取当前的时间戳
    2 print(t)  #原始时间数据
    3 print(int(t)) #秒级时间戳
    4 print(int(round(t*1000))) #毫米级时间戳

    2、获取格式化好的时间

    1 res = time.strftime('%Y-%m-%d %H:%M:%S') #取当前格式化好的时间
    2 print(res)
    3 print(time.strftime('%y-%m')) #年份的y可以小写,小写取得是年份的后两位

    3、把格式化好的时间转成时间戳

    通过时间元祖转换

    1 time_tuple = time.strptime('1979-09-08 19:18:29','%Y-%m-%d %H:%M:%S') #将格式化时间转成时间元组,前面参数写时间,后面参数写格式,相对应
    2 print(time.mktime(time_tuple))  #将时间元组转换成时间戳

    写一个时间转时间戳的函数

     1 import time
     2 def str_to_timestamp(time_str=None,format='%Y%m%d%H%M%S'): #默认值
     3     if time_str:                                              #非空即真
     4         time_tuple = time.strptime(time_str,format)
     5         timestamp = time.mktime(time_tuple)
     6     else:
     7         timestamp = time.time()                                #如果没传参数,则获取当前时间戳
     8     return int(timestamp)                                      #因为有小数部分,所以转成int
     9 print(str_to_timestamp())
    10 print(str_to_timestamp('20290909121229'))
    11 print(str_to_timestamp('1988-12-10','%Y-%m-%d'))

    4、时间戳转格式化好的时间

    1 res = time.gmtime(325894)   #将时间戳转成时间元组,标准时区,参数类型为整形
    2 print(time.strftime('%Y-%m-%d',res)) #将时间元组转成格式化时间,第一个参数写格式,第二个参数写元组
    3 
    4 res = time.gmtime(time.time()) #将当前时间戳转成元组,time.gmtime转的是标准时区
    5 print(time.strftime('%Y-%m-%d %H:%M:%S',res))
    6 
    7 res = time.localtime(time.time()) #将当前时间戳转成元组,time.localtime转的是中国时区(东八区)
    8 print(time.strftime('%Y-%m-%d %H:%M:%S',res))

    写个时间戳转格式化时间的函数

     1 import time
     2 import 格式化时间转时间戳
     3 def timestamp_to_strtime(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
     4     #这个函数是用来把时间戳转成格式化好的时间
     5     #如果不传参数的话,那么就返回当前时间
     6     if timestamp:
     7         time_tuple = time.localtime(timestamp)  #转为当前时区时间元祖
     8         str_time = time.strftime(format,time_tuple) #时间元组转格式化时间
     9     else:
    10         str_time = time.strftime(format) #如果没有时间戳参数,则默认转换当前时间戳为格式化时间
    11     return str_time
    12 print(timestamp_to_strtime())
    13 print(timestamp_to_strtime(325894)) #只传时间戳参数
    14 print(timestamp_to_strtime(34535,'%Y-%m'))  #两个参数都传了
    15 s = 格式化时间转时间戳.str_to_timestamp() - (3*24*60*60)  #,调用下格式化时间转时间戳的函数,获取三天前时间戳
    16 res = timestamp_to_strtime(s)
    17 print('三天时间是',res)

    结果:

    1 1538402929
    2 1883621549
    3 597686400
    4 2018-10-01 22:08:49
    5 1970-01-05 02:31:34
    6 1970-01
    7 三天时间是 2018-09-28 22:08:49

     5、把字符串转成日期格式

    1 # 把字符串转换为日期格式
    2 import time
    3 t = time.strptime('2016-05-09 21:09:30', '%Y-%m-%d %H:%M:%S')
    4 print(t)
    5 # 函数说明:
    6 # 第一个参数是要转换成日期格式的字符串,第二个参数是字符串的格式

    结果:

    1 time.struct_time(tm_year=2016, tm_mon=5, tm_mday=9, tm_hour=21, tm_min=9, tm_sec=30, tm_wday=0, tm_yday=130, tm_isdst=-1)

     题目:

    log日志中,我们需要用时间戳记录erro,warning等的发生时间,请用datetime模块打印当前时间戳“2018-04-01 11:38:54”

    1 import time,datetime
    2 print(time.mktime(time.strptime(time.strftime('%Y-%m-%d %H:%M:%S'),'%Y-%m-%d %H:%M:%S')))
    3 #datetime获取当前时间
    4 res = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')#获取当前时间 后,格式化时间
    5 res = time.strptime(res,'%Y-%m-%d %H:%M:%S')#格式化时间转成元组
    6 res = time.mktime(res)
    7 print(res)
    8 
    9 print(time.mktime(time.strptime('2018-04-01 11:38:54','%Y-%m-%d %H:%M:%S'))) #“2018-04-01 11:38:54”这个时间的时间戳

    6、python英文日期转数字年月日格式

    符:
    %a 英文星期简写
    %A 英文星期的完全
    %b 英文月份的简写
    %B 英文月份的完全
    %c 显示本地日期时间
    %d 日期,取1-31
    %H 小时, 0-23
    %I 小时, 0-12
    %m 月, 01 -12
    %M 分钟,1-59
    %j 年中当天的天数
    %w 显示今天是星期几
    %W 第几周
    %x 当天日期
    %X 本地的当天时间
    %y 年份 00-99间
    %Y 年份的完整拼写
    ————————————————
    版权声明:本文为CSDN博主「彩伊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_42185136/java/article/details/94718201

  • 相关阅读:
    面试题_day0212
    面试题_day0211
    猫眼的数字解密
    缺口验证码
    mysql替换字段里面的内容
    mysql重复id删除
    追踪你的女朋友。
    淘宝登录验证
    jadx-gui-1.0.0.jar怎么运行?
    Python实现一个进度条
  • 原文地址:https://www.cnblogs.com/once-again/p/9735467.html
Copyright © 2011-2022 走看看