python 从asctime到日期时间字符串的转换方法
1、将asctime转换为时间戳
如果将asctime转换为日期时间字符串,首先需要将asctime转换为时间戳。时间戳是指自1970年1月1日以来的秒数。Python中的time模块提供了将asctime转换为时间戳的函数mktime。
import time asctime = "Fri May 14 05:24:59 2021" t = time.mktime(time.strptime(asctime, "%a %b %d %H:%M:%S %Y")) print(t) # 输出结果为 1620951899.0
2、将时间戳转换为日期时间字符串
将asctime转换成时间戳后,可以使用time模块中的gmtime或localtime函数将时间戳转换为本地时间或世界时(GMT)的struct_time结构体,然后再使用strftime函数将struct_time结构体中的时间元组转换为指定格式的日期时间字符串。
import time asctime = "Fri May 14 05:24:59 2021" t = int(time.mktime(time.strptime(asctime, "%a %b %d %H:%M:%S %Y"))) # 转成本地时间的字符串 local_time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t)) print(local_time_str) # 输出结果为 2021-05-14 05:24:59 # 转成世界时的字符串 gmt_time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(t)) print(gmt_time_str) # 输出结果为 2021-05-14 09:24:59
3、datetime模块是Python标准库中的另一个时间处理模块,通过datetime模块也可以很容易地将asctime转换为日期时间字符串。
import datetime asctime = "Fri May 14 05:24:59 2021" t = datetime.datetime.strptime(asctime, "%a %b %d %H:%M:%S %Y") # 转成本地时间的字符串 local_time_str = t.strftime("%Y-%m-%d %H:%M:%S") print(local_time_str) # 输出结果为 2021-05-14 05:24:59
4、Python中的第三方库dateutil也提供了将asctime转换为日期时间字符串的函数。
from dateutil import parser asctime = "Fri May 14 05:24:59 2021" dt = parser.parse(asctime) dt_str = dt.strftime("%Y-%m-%d %H:%M:%S") print(dt_str) # 输出结果为 2021-05-14 05:24:59