最近遇到一个"bug",就是本地 datetime 的时间上传到数据库,总发现时间显示不对…… 经过一番痛苦的排查之后,我发现原来是 datetime.now() 在获取事件信息时,不会添加当前的时区信息。也就是说,获得的结果虽然时分秒和电脑显示一致,但是时区信息为默认的 UTC 而非我们真正的 UTC+8,因此这个时间是不对的……
添加时区信息有一些方法,但是很复杂:
python 关于为datatime 对象添加时区信息以及时区转换问题 - CSDN
教训就是,还是尽量使用时间戳来表示唯一的时间,但是由于我使用的数据库接口需要上传 datetime 类型,我选择使用 arrow 库,简化时间操作,arrow.now() 获得的时间带有时区信息!
Getting started — Arrow