python的时间格式转换
在python中经常会遇到时间格式的转换的问题(时间戳与日期互相转换,或者转成特定的日期格式)下面是个人总结的一些时间转换的方法:
- 时间戳转日期格式
import time
#获取当前时间戳,并转成localtime格式
timestamp = time.time()
localtime = time.localtime(timestamp)
# 将localtime转换成想要的时间格式
daytime = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
print(timestamp)
print(localtime)
print(daytime)
输出结果
1536500265.060535
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=9, tm_hour=21, tm_min=37, tm_sec=45, tm_wday=6, tm_yday=252, tm_isdst=0)
2018-09-09 21:37:45
- 日期转换成时间戳
import time
daytime = "2018-09-09 21:37:45"
# 将日期转换成时间数组使用time.straptime(string, format)函数
timeArray = time.strptime(daytime, "%Y-%m-%d %H:%M:%S")
# 转换成时间戳
timestamp = time.mktime(timeArray)
print(timeArray)
print(timestamp)
-------------------------------------
import datetime
daytime = "2018-09-09 21:37:45"
# 将日期转换成时间数组使用straptime(string, format)函数
timeArray = datetime.datetime.strptime(daytime, "%Y-%m-%d %H:%M:%S")
输出结果
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=9, tm_hour=21, tm_min=37, tm_sec=45, tm_wday=6, tm_yday=252, tm_isdst=0)
1536499348.0
- 输出特定的时间格式
# 例:将时间2018-09-09 21:37:45变成2018/09/09 21:37:45
daytime = "2018-09-09 21:37:45"
# 将时间转换成timeArray
timeArray = time.strptime(daytime, "%Y-%m-%d %H:%M:%S")
# 用strftime转换成特定格式
newtime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(daytime)
print(newtime)
输出结果
2018-09-09 21:37:45
2018/09/09 21:37:45
- 附
datetime格式定义
代码 说明
%Y 4位数的年
%y 2位数的年
%m 2位数的月[01, 12]
%d 2位数的日[01, 31]
%H 时(24小时制)[00, 23]
%I 时(12小时制)[01, 12]
%M 2位数的分[00, 59]
%S 秒[00, 61](秒60和61用于闰秒)
%W 用整数表示的星期几[0(星期天), 6],星期天被认为是每周的第一天
%U 每年的第几周[00, 53],星期天为每周的第一天,每年的第一个星期天之前的那几天被认为是第0周
%W 每天的第几周[00, 53],星期一为每周的第一天,每天的第一个星期一之前的那几天被认为是第0周
%z 以+HHMM(-HHMM)表示的UTC时区偏移量,如果时区为naive,则返回空字符串