python - 使用 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)
他们没有以某种方式相互匹配,我做错了什么?
解决方案
这可能会帮助您:
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
推荐阅读
- android - 华为 AppGallery 上是否有任何指定的 url 格式,以便我可以在不同平台上访问和分发链接
- django - 如何限制 postgres 中的 varchar 只允许 DB 中的特定字符?
- rubygems - 无法安装邮件捕手
- xamarin - 我的应用会因为基于 WebView 而在 Play Store 或 App Store 上被拒绝吗?
- spring - Spring Security 在不使用标头的情况下获取客户端 IP
- bash - 如何使用 convert imagemagick 将 bash 脚本的输出保存到图像文件
- postgresql - 精确匹配 rtrim 函数中的 trimming_text
- r - ggplot2 geom_line 和指定线条颜色的问题
- flutter - 在dart语言中,类可以作为方法的参数吗?
- android - 是否可以将 DownloadManager.Request 限制为特定的服务器证书?