- 主题:python 的 datetime 坑真多啊。
下面这段代码会报错:
from datetime import datetime
ts = 1571595618.0
x = datetime.utcfromtimestamp(ts)
x_ts = x.timestamp()
assert ts == x_ts, f"{ts} != {x_ts}"
换成这样就对:
from datetime import datetime, timezone
ts = 1571595618.0
x = datetime.fromtimestamp(ts, tz=timezone.utc)
x_ts = x.timestamp()
https://blog.ganssle.io/articles/2019/11/utcnow.html
--
FROM 59.60.24.*
没有时区怎么给你转换时间?这不是很合理吗
【 在 hgoldfish 的大作中提到: 】
: 下面这段代码会报错:
:
: from datetime import datetime
: ts = 1571595618.0
: x = datetime.utcfromtimestamp(ts)
: x_ts = x.timestamp()
:
: assert t
: ..................
发自「今日水木 on iPhone 12 Pro」
--
FROM 112.96.56.*
真的“就对了”吗?时区真的是utc0的时候才是对的吧,如果你的ts是localtime,时区又不是utc0。
我传时间日期一般传完整的ISO 8601字符串,然后用datetime.fromisoformat()读入。
--
FROM 222.212.186.*
同意,输入要标准,至少要约定某个固定格式
【 在 poocp 的大作中提到: 】
: 真的“就对了”吗?时区真的是utc0的时候才是对的吧,如果你的ts是localtime,时区又不是utc0。
: 我传时间日期一般传完整的ISO 8601字符串,然后用datetime.fromisoformat()读入。
--
FROM 223.104.3.*
带啊,UTC时区啊
文档里明确写着呢啊
【 在 ToSimplicity 的大作中提到: 】
: utcfromtimestamp造出来的datetime不带时区信息么?感觉是bug啊
--
FROM 222.71.112.*