我正在尝试编写一个将Python中的字符串日期/时间从本地时间转换为UTC的函数。
根据这个问题,您可以使用time.tzname
来获取本地时区的某些形式,但是我还没有找到在任何datetime转换方法中使用此方法的方法。例如,本文显示了您可以做一些事情pytz
以及datetime
可以转换时间,但是它们都具有硬编码的时区,并且格式与time.tzname
返回的时区不同。
目前,我有以下代码将字符串格式的时间转换为毫秒(Unix纪元):
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。有没有一种方法可以将字符串格式的时间转换为本地时区?谢谢。
本质上,我希望能够做到这一点,但是我希望能够动态地指定本地时区,而不是在“ America / Los_Angeles”中进行硬编码。
如果我正确理解了您的问题,您需要这样做:
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"))))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句