我试图理解.utcnow与.now在Python的DateTime上使用的含义。
这就是我困惑的原因:我住在法国。现在,我们在UTC时区(冬季的CET时区/夏天的CEST (+2)时区)有一个+1小时。
如果我取以下值:
dt = datetime.datetime.utcnow()
dt.strftime('%c') # Thu Dec 9 16:17:38 2021
int(dt.timestamp()) # 1639063064这是正确的,因为它是正确的,在法国现在,17h17。因此,根据我的理解,时间戳1639063064是自时代以来的UTC表示。
但是如果我在历代变换器网站上测试这个值,我会得到
该网站似乎也将我的时区减去一个已经“减”的值,最后移除两倍的时区并导致无效的值。
真正的困惑是当我试图将UTC时间戳导入到我的前端应用程序上的鲁迅时,做以下操作不起作用:
DateTime.fromMillis(parseInt(ts), { zone: 'utc' }).toLocal().setLocale('en')我落后了一个小时。
我如何“告诉”鲁迅当前TS位于UTC时区,调用toLocal将应用适当的用户时区?
发布于 2021-12-09 16:30:20
似乎网站也在我的时区t上做了减法。
不,epochconverter.com什么也没做。值1639063064确实代表2021-12-09T15:17:44Z。这不是你想要的价值。
我不是Python专家,但我认为问题在于行为 (强调我的)的组合:
使用
tzinfo None返回当前的UTC日期和时间。 这类似于now(),但是返回当前的UTC日期和时间,作为一个朴素的datetime对象。
和行为
假定朴素日期时间实例表示本地时间,此方法依赖platform C
mktime()函数来执行转换。
听起来你想遵循以下建议:
可以通过调用
datetime.now(timezone.utc)获得当前UTC的日期时间。
因此,只需将第一行改为:
dt = datetime.now(timezone.utc)..。应该没问题的。
https://stackoverflow.com/questions/70293297
复制相似问题