如何将本地时间中的日期/时间字符串转换为Python中的UTC?

2024-09-29 21:31:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个函数,在Python中将字符串日期/时间从本地时间转换为UTC。在

根据this question,您可以使用time.tzname来获得本地时区的某些形式,但我还没有找到在任何日期时间转换方法中使用此方法的方法。例如,this article显示可以使用pytz和{}来转换时间,但是它们都有硬编码的时区,并且与time.tzname返回的时区格式不同。在

目前,我有以下代码将字符串格式的时间转换为毫秒(Unix epoch):

local_time = time.strptime(datetime_str, "%m/%d/%Y %H:%M:%S") # expects UTC, but I want this to be local
dt = datetime.datetime(*local_time[:6])
ms = int((dt - datetime.datetime.utcfromtimestamp(0)).total_seconds() * 1000)

但是,这要求时间输入为UTC。有没有办法把字符串格式的时间转换成本地时区的格式?谢谢。在

本质上,我希望能够做this answer所做的事情,但是我希望能够动态地指定本地时区,而不是在“美国/洛杉矶”中进行硬编码。


Tags: 方法函数字符串编码datetimetimelocal格式
1条回答
网友
1楼 · 发布于 2024-09-29 21:31:40

如果我没弄错你的问题,你想要这个:

from time import strftime,gmtime,mktime,strptime

# you can pass any time you want
strftime("%Y-%m-%d %H:%M:%S", gmtime(mktime(strptime("Thu, 30 Jun 2016 03:12:40", "%a, %d %b %Y %H:%M:%S"))))

# and here for real time
strftime("%Y-%m-%d %H:%M:%S", gmtime(mktime(strptime(strftime("%a, %d %b %Y %H:%M:%S"), "%a, %d %b %Y %H:%M:%S"))))

相关问题 更多 >

    热门问题