首页 > 解决方案 > 在python中将本地时间戳转换为unix时代时间戳

问题描述

我有以下格式的日期字符串(在输入中给出)本地亚洲/加尔各答时区(GMT + 05:30)我想将其转换为gmt时区并找到该字符串的纪元时间戳。

输入:(当地时间) 2019-11-09 10:10:10

输出:(格林威治标准时间) 1573274410

标签: pythondatetimetimestampunix-timestampepoch

解决方案


您需要做的就是在正确的时区正确解析时间字符串,然后获取其时间戳:

from pytz import timezone
from datetime import datetime

calcutta = timezone('Asia/Calcutta')
naive_ts = datetime.strptime('2019-11-09 10:10:10', '%Y-%m-%d %H:%M:%S')
local_ts = calcutta.localize(naive_ts)
epoch_ts = local_ts.timestamp()

或作为单行:

timezone('Asia/Calcutta').localize(datetime.strptime('2019-11-09 10:10:10', '%Y-%m-%d %H:%M:%S')).timestamp()

“GMT”在这里无关紧要,UNIX 纪元.timestamp()与时区无关。你可以做local_ts.timestamp()local_ts.astimezone(pytz.utc).timestamp(),它们都产生相同的数字,因为它们都表示完全相同的时间点(只是在地球上的不同位置)。您需要做的就是将表示为 YYYY-MM-DD HH:MM:SS 的时间戳转换为感知(包括时区)datetime对象,然后.timestamp()无论您将其转换为哪个时区,它都将是相同的。


推荐阅读