是否有“本地”时间戳?

Nik*_*ntz 3 python time datetime timestamp pytz

我可以将 UTC 时间戳(例如 1417392000)转换为包括夏令时在内的本地日期时间对象,但是当我尝试将本地日期时间对象转换为“本地时间戳”时,我会得到与以前相同的 UTC 时间戳。

我是否在循环思考并且它们是相同的?我应该从传入的 UTC 时间戳中保存“本地时间戳”。

这是我的代码

    print("UTC timestamp %d" % hour[0])
    day = self.get_day(hour)
    month = self.get_month(hour)
    year = self.get_year(hour)
    tz = pytz.timezone('Europe/Stockholm')
    utc_dt = datetime.utcfromtimestamp(int(hour[0])).replace(tzinfo=pytz.utc)
    print("UTC datetime %s" % utc_dt)
    dt = tz.normalize(utc_dt.astimezone(tz))
    print("STO datetime %s" % dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
    print("STO ts %d" % int(time.mktime(dt.timetuple())))
    print("STO timestamp %d" % utc_dt.astimezone(tz).timestamp())
    day = int(dt.strftime('%d'))
    month = int(dt.strftime('%m'))
    year = int(dt.strftime('%Y'))
Run Code Online (Sandbox Code Playgroud)

输出

UTC timestamp 1417395600
UTC datetime 2014-12-01 01:00:00+00:00
STO datetime 2014-12-01 02:00:00 CET+0100
STO ts 1417395600
STO timestamp 1417395600
Run Code Online (Sandbox Code Playgroud)

所有“时间戳”(即时间的整数表示)都是相同的。是否可以制作“本地时间戳”?数据类型应该是一个时间戳,它是一个数字和本地时间。

Bit*_*tor 6

根据维基百科

Unix 时间(也称为 POSIX 时间或纪元时间)是一种用于描述时间瞬间的系统,定义为自 1970 年 1 月 1 日星期四 00:00:00 协调世界时 (UTC) 以来经过的秒数

因此,无论您在哪个时区,纪元都将始终以 UTC 时区计算。

出于显示目的,您可以将时间戳转换为本地时间,但否则时代的内部表示将始终在 UTC 时区