首页 > 解决方案 > 如何使用python 3.8在ubuntu上计算当地时间的UTC

问题描述

我有一个在 ubuntu 服务器(18.04)上运行的用 python 3.8 编写的 Web 应用程序。对服务器的请求由 nginx 服务器处理。

可以上传 pdf 和 excel 文件,网站应显示文件上传的日期和时间。这是有效的,但显示的是 UTC 时间,我希望网站显示实际的本地时间(欧洲/柏林 UTC +1/+2)。所以我只是尝试在python代码中转换时间:

utc_diff = 1 cur_time
= time.time()

if time.localtime(cur_time).tm_isdst: # 检查夏季/冬季时间
>> utc_diff = 2

... (datetime.fromtimestamp(round(timestamp)) + timedelta(hours=utc_diff))

或者

utc = datetime.utcnow()
ltz = datetime.astimezone(utc)
diff = str(ltz).split("+")
diff = diff[1].split(":")

... datetime.fromtimestamp(round(timestamp)) + timedelta(hours=int(diff))

问题是我只能计算 +2 小时,但如果我想使用时间或日期时间模块的任何功能,它只能在我的本地 Windows 电脑上工作,但不能在服务器上工作。

该线路datetime.fromtimestamp(round(timestamp)) + timedelta(hours=int(diff))在本地和服务器上工作。

我如何编写代码以使其在服务器上工作?

标签: python-3.xdatetimenginxtimeubuntu-18.04

解决方案


我认为您不想手动进行时间偏移。我想你想要的东西更像:

import time

now = time.time()
print(time.strftime("%H:%M:%S", time.gmtime(now)))
print(time.strftime("%H:%M:%S", time.localtime(now)))

推荐阅读