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

 

posted on 2023-09-14 14:09  shaomine  阅读(137)  评论(0编辑  收藏  举报