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

posted on 2018-10-02 10:18  羽竹  阅读(197)  评论(0编辑  收藏  举报