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