Python日期时间和utc偏移量转换忽略时区/夏令时

2024-05-13 20:44:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做两个手术,一个是相反的。在

  1. 我在UTC有一个UNIX时间戳,例如1425508527。从这里我想得到年,月,日等,给定一个UTC偏移量。年/月/日/时间是多少(UTC-6小时)?答案是2015年3月4日16:35:27。如果不提供偏移量(或偏移量零点),答案应为2015年3月4日22:35:27。

  2. 现在我有了某个地点的日期,以及UTC偏移量。例如2015年3月4日16:35:27和偏移量(UTC-6小时)。我应该得到的UNIX UTC时间戳应该是1425508527。

我几乎能做2。(使用python datetime库)如下所示:

import datetime.datetime as datetime
import time
import dateutil.tz as tz

utc_offset = 6
time.mktime(datetime(2015,3,4,16,35,27,
                     tzinfo=tz.tzoffset(None, utc_offset*60*60)).utctimetuple())
# => 1425486927

上面的问题是utc_offset必须给出错误的符号。根据this map,utc偏移量应设置为-6。1号。我没有运气。我不需要/不想处理夏时制之类的时区信息。如何在Python中实现这一点?在


Tags: 答案importdatetimetimeas时间unixtz
1条回答
网友
1楼 · 发布于 2024-05-13 20:44:38

如果系统使用Unix time,则 不计算闰秒,则可按如下方式进行转换:

第1部分:时间戳和本地日期偏移量

import datetime as DT
import calendar

timestamp = 1425508527
offset = -6

date = DT.datetime(1970,1,1) + DT.timedelta(seconds=timestamp)
print(date)
# 2015-03-04 22:35:27

localdate = date + DT.timedelta(hours=offset)
print(localdate)
# 2015-03-04 16:35:27

第2部分:本地日期和时间戳偏移量

^{pr2}$

相关问题 更多 >