将时区感知日期时间保存为字符串,然后将其恢复为日期时间

时间:2021-07-16 11:27:10

标签: python datetime

我正在读取 postgres 数据库并获取 datetime 对象。我想将它保存在一个文本文件中,然后重新阅读它并获得等效的日期时间对象。在这两种情况下,我都需要了解时区。

我如何以一种可靠的方式执行此操作,即使稍后重新读取是在不同的语言环境或时区中完成的?

1 个答案:

答案 0 :(得分:0)

import datetime
import pytz

loc = datetime.datetime.now()  # local time without timezone
loc = pytz.timezone('CET').localize(loc)  # make timezone aware

with open("out.txt", "w") as w:
    w.write(loc.isoformat())  # write in iso 8601 format...

with open("out.txt", "r") as r:
    dt = datetime.datetime.fromisoformat(r.read())
    print(dt)
    print(dt == loc)