我想要执行两个操作,一个是另一个操作的反转。
我在UTC上有一个UNIX时间戳,例如1425508527.从这里我想得到UTC偏移量的年,月,日等。例如。什么是年/月/日/时间(UTC -6小时)?答案是2015年3月4日16:35:27。如果没有提供抵消(或抵消零),答案应该是2015年3月4日22:35:27。
现在我在某个位置有日期,以及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必须给出错误的符号。根据{{3}},utc_offset应设置为-6。第1号。我没有运气。我不需要/想要处理时区信息,如夏令时。我如何在Python中实现它?
答案 0 :(得分:3)
如果您的系统使用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部分:本地日期和时间戳的偏移量
utcdate = localdate - DT.timedelta(hours=offset)
assert date == utcdate
timetuple = utcdate.utctimetuple()
timestamp2 = calendar.timegm(timetuple)
print(timestamp2)
# 1425508527
assert timestamp == timestamp2