python - 在python中将本地时间戳转换为unix时代时间戳
问题描述
我有以下格式的日期字符串(在输入中给出)本地亚洲/加尔各答时区(GMT + 05:30)我想将其转换为gmt时区并找到该字符串的纪元时间戳。
输入:(当地时间) 2019-11-09 10:10:10
输出:(格林威治标准时间) 1573274410
解决方案
您需要做的就是在正确的时区正确解析时间字符串,然后获取其时间戳:
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()
无论您将其转换为哪个时区,它都将是相同的。
推荐阅读
- mongodb - MongoDB大数组在文档中的表现
- python - 如何更改 matplotlib 条形图中单个边缘的颜色?
- nuxt.js - nuxt does not start on Arch
- css - 更改预建角度材质主题的背景颜色
- xml - 如何使用 CLDR XML 文件来解析给定语言和地区的人类可读时区名称?
- angular - 重定向中的 ngrx 状态保护
- logging - 使用 Log4j2 自定义 HTML 布局
- reactjs - 处理多个数字类型输入
- python - 如何以“正常”方式对包括 str 和编号的数据进行排序 [Python]
- android - 如何在不使用 C 的情况下使用 aarch64 打印数字