【发布时间】:2017-05-27 14:23:58
【问题描述】:
我正在尝试将具有特定时区(欧洲/巴黎)的时间戳转换为 UTC 的日期时间格式。 在我的笔记本电脑上,它适用于以下解决方案,但是当我在远程服务器(爱尔兰的 AWS-Lambda 函数)中执行我的代码时,我有 1 小时的班次,因为服务器的本地时区与我的不同。 我怎样才能拥有一个可以在我的笔记本电脑上同时在远程服务器上工作的代码(动态处理本地时区)?
import pytz
import datetime
def convert_timestamp_in_datetime_utc(timestamp_received):
utc = pytz.timezone('UTC')
now_in_utc = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(pytz.UTC)
fr = pytz.timezone('Europe/Paris')
new_date = datetime.datetime.fromtimestamp(timestamp_received)
return fr.localize(new_date, is_dst=None).astimezone(pytz.UTC)
谢谢
【问题讨论】:
-
我不确定我是否理解这个问题 - 这是怎么失败的?什么是“timestamp_received”?我可以想象这种失败的唯一原因是时间戳是否是本地时间的时间戳。
-
这是一个从法国网站提取的时间戳,基于当地时区(欧洲/巴黎)。当我执行此函数时,如果我在笔记本电脑上或通过 Lambda 函数执行它,则返回日期时间会偏移一小时。我想问题是“datetime.datetime.fromtimestamp”是基于当地时区的......