我必须在 Python 中做啥才能创建一个代表 2019 年 1 月 1 日纽约时间(东部时间)18:00 的对象? [复制]

Posted

技术标签:

【中文标题】我必须在 Python 中做啥才能创建一个代表 2019 年 1 月 1 日纽约时间(东部时间)18:00 的对象? [复制]【英文标题】:What do I have to do in Python to create an object which represents the January 1st, 2019 at 18:00 New York time (Eastern Time)? [duplicate]我必须在 Python 中做什么才能创建一个代表 2019 年 1 月 1 日纽约时间(东部时间)18:00 的对象? [复制] 【发布时间】:2020-06-16 05:24:33 【问题描述】:

我正在尝试定义一个日期时间对象,它代表纽约时间 2019 年 1 月 1 日 18:00。

我试试:

import datetime
import pytz
ts = datetime.datetime(2019, 1, 1, 18, 0, 0, 0, tzinfo=pytz.timezone("US/Eastern"))
print(ts)

我得到:

2019-01-01 18:00:00-04:56

为什么是 -04:56?

我正在使用 Python 3.7

【问题讨论】:

这能回答你的问题吗? Python pytz timezone function returns a timezone that is off by 9 minutes 我不认为它确实回答了这个问题,但我会明确地更改问题标题。我很困惑,如何生成给定时区的特定时间戳?即我应该在 Python 中做什么来创建一个代表 2019 年 1 月 1 日纽约时间(复活节时间)18:00 的对象。 这回答了你的问题:***.com/questions/26264897/… 这能回答你的问题吗? Time zone field in isoformat 【参考方案1】:

如果时区具有夏令时转换 (see here),则使用带有日期时间构造函数的 tzinfo 往往会出现问题。您可以使用 UTC 时区并在显示时间时转换为相应的本地时间作为解决方法。

【讨论】:

我的输入数据是来自纽约的时间戳,如果我理解正确的话,你是说在 UTC 中存储时间戳,我想用纽约时间戳存储它们。【参考方案2】:

Victor 在上面的 cmets 中提供的这个链接 (Time zone field in isoformat) 包含答案。

我在这里特别介绍了为给定时间戳构造对象的方法。

eastern = pytz.timezone("US/Eastern")
print(eastern.localize(datetime.datetime(2019, 1, 1, 18)).isoformat())

【讨论】:

以上是关于我必须在 Python 中做啥才能创建一个代表 2019 年 1 月 1 日纽约时间(东部时间)18:00 的对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

您可以在 CoreBluetooth 后台委托调用中做啥?

|=(管道等号)符号在python中做啥?

你在 SQL Server 中做啥来创建或更改?

我必须做啥才能将 cout 与 opencv 一起使用?

我必须做啥才能通过流星包含库,以便我可以使用打字稿?

“?”是啥意思?和“:”在布尔语句中做啥? [复制]