首页 > 解决方案 > 使用 Python 检索和显示以 UTC 存储的时间和日期

问题描述

我有一个运行从远程站点抓取数据的刮板,数据存储在 SQLite DB 中,并使用 UTC 中的整数 UNIX 时间戳打上时间戳,因为我认为这是个好主意。

    time = int(datetime.utcnow().timestamp())

但是,当我尝试在本地时间(吉隆坡,UTC+8)获取数据和检索时,我得到了很多不匹配。为了检索,我尝试在 Python(3.6.6)中将本地时间转换回 UTC,但它们似乎都没有获取具有正确时间戳的行。在放弃之前,我最后一次尝试找到给定一天的开始是

(datetime(the_date.year,
          the_date.month,
          the_date.day,
          tzinfo=timezone.utc)
 - timedelta(hours=8)).timestamp()

我上次尝试将从数据库获取的时间戳转换为本地时间是

datetime.fromtimestamp(timestamp) + timedelta(hours=8)

他们没有以某种方式相互匹配,我做错了什么?

标签: pythondate

解决方案


这可能会帮助您:

def get_UTC_diff(tzname):
    now = datetime.datetime.utcnow()
    tz = timezone(tzname)
    utc = timezone('UTC')
    utc.localize(datetime.datetime.now())
    delta = utc.localize(now) - tz.localize(now)
    hrs = int(delta.seconds / 3600)
    return hrs

推荐阅读