Python datetime utcnow vs Luxon Datetime.fromMillis?
Python datetime utcnow vs Luxon Datetime.fromMillis?
我正在努力理解在 Python 的 DateTime 上使用 .utcnow
与 .now
的 含义 .
这是我困惑的原因:我住在法国。现在,我们在 UTC 时区上有 +1 小时(冬季(现在)的 CET 时区/夏季的 CEST (+2) 时区)。
如果我取以下值:
dt = datetime.datetime.utcnow()
dt.strftime('%c') # Thu Dec 9 16:17:38 2021
int(dt.timestamp()) # 1639063064
这是正确的,法国现在是 17 点 17 分。
因此,根据我的理解,时间戳 1639063064
是自 EPOCH 以来时间的 UTC 表示。
但是如果我在网站 Epoch Converter 中测试这个值,我得到
- 格林威治标准时间:2021 年 12 月 9 日,星期四 15:17:44
- 您所在的时区:jeudi 2021 年 12 月 9 日16:17:44 GMT+01:00
似乎该网站还将我的时区减去一个已经“减去”的值,最后删除了两倍的时区并导致无效值。
真正的困惑是当我试图在我的前端应用程序上将该 UTC 时间戳导入 Luxon 时,执行以下操作不起作用:
DateTime.fromMillis(parseInt(ts), { zone: 'utc' }).toLocal().setLocale('en')
我晚了一个小时。
我如何“告诉”Luxon 当前 TS 处于 UTC 时区,并且调用 toLocal
将应用正确的用户时区?
It seems that the website ALSO substract my timezone t
不,epochconverter.com 没有做任何事情。值 1639063064 确实 确实 代表 2021-12-09T15:17:44Z。这不是你想要的值。
我不是 Python 专家,但我认为问题出在 this utcnow()
behavior 的组合(强调我的):
Return the current UTC date and time, with tzinfo None
.
This is like now()
, but returns the current UTC date and time, as a naive datetime object.
Naive datetime instances are assumed to represent local time and this method relies on the platform C mktime()
function to perform the conversion.
听起来你想听从这个建议:
An aware current UTC datetime can be obtained by calling datetime.now(timezone.utc)
.
所以只需将第一行更改为:
dt = datetime.now(timezone.utc)
...应该没问题。
我正在努力理解在 Python 的 DateTime 上使用 .utcnow
与 .now
的 含义 .
这是我困惑的原因:我住在法国。现在,我们在 UTC 时区上有 +1 小时(冬季(现在)的 CET 时区/夏季的 CEST (+2) 时区)。
如果我取以下值:
dt = datetime.datetime.utcnow()
dt.strftime('%c') # Thu Dec 9 16:17:38 2021
int(dt.timestamp()) # 1639063064
这是正确的,法国现在是 17 点 17 分。
因此,根据我的理解,时间戳 1639063064
是自 EPOCH 以来时间的 UTC 表示。
但是如果我在网站 Epoch Converter 中测试这个值,我得到
- 格林威治标准时间:2021 年 12 月 9 日,星期四 15:17:44
- 您所在的时区:jeudi 2021 年 12 月 9 日16:17:44 GMT+01:00
似乎该网站还将我的时区减去一个已经“减去”的值,最后删除了两倍的时区并导致无效值。
真正的困惑是当我试图在我的前端应用程序上将该 UTC 时间戳导入 Luxon 时,执行以下操作不起作用:
DateTime.fromMillis(parseInt(ts), { zone: 'utc' }).toLocal().setLocale('en')
我晚了一个小时。
我如何“告诉”Luxon 当前 TS 处于 UTC 时区,并且调用 toLocal
将应用正确的用户时区?
It seems that the website ALSO substract my timezone t
不,epochconverter.com 没有做任何事情。值 1639063064 确实 确实 代表 2021-12-09T15:17:44Z。这不是你想要的值。
我不是 Python 专家,但我认为问题出在 this utcnow()
behavior 的组合(强调我的):
Return the current UTC date and time, with
tzinfo None
.This is like
now()
, but returns the current UTC date and time, as a naive datetime object.
Naive datetime instances are assumed to represent local time and this method relies on the platform C
mktime()
function to perform the conversion.
听起来你想听从这个建议:
An aware current UTC datetime can be obtained by calling
datetime.now(timezone.utc)
.
所以只需将第一行更改为:
dt = datetime.now(timezone.utc)
...应该没问题。