将纪元时间戳列转换为带有时区的日期时间
Posted
技术标签:
【中文标题】将纪元时间戳列转换为带有时区的日期时间【英文标题】:Convert column of epoch timestamps to datetime with timezone 【发布时间】:2019-08-22 07:15:18 【问题描述】:我的 Jupyter 笔记本中有一个数据框,其中有一列纪元时间戳,它看起来像这样:
Name stop ts remark
A 01 1546470653 -
B 032 1546470969 Not listed
C 022 1546471069 Not listed
D 045 1546471238 Not listed
我要做的是将纪元时间戳转换为带有时区(utc+8)的人类可读日期和时间,结果应如下所示:
Name stop ts remark timestamp
A 01 1546470653 - 2019-01-03T07:10:53+08:00
B 032 1546470969 Not listed 2019-01-03T07:16:09+08:00
C 022 1546471069 Not listed 2019-01-03T07:17:49+08:00
D 045 1546471238 Not listed 2019-01-03T07:20:38+08:00
有人可以帮助我实现这一目标吗?非常感谢!
【问题讨论】:
【参考方案1】:将pd.to_datetime
与unit='s'
一起使用。然后您可以使用tz_*
方法设置时区。
df['timestamp'] = (pd.to_datetime(df['ts'], unit='s')
.dt.tz_localize('utc')
.dt.tz_convert('Asia/Hong_Kong'))
df
Name stop ts remark timestamp
0 A 1 1546470653 - 2019-01-03 07:10:53+08:00
1 B 32 1546470969 Not listed 2019-01-03 07:16:09+08:00
2 C 22 1546471069 Not listed 2019-01-03 07:17:49+08:00
3 D 45 1546471238 Not listed 2019-01-03 07:20:38+08:00
【讨论】:
我们如何从时间戳中删除 +08:00 ? @Pranav101py 在tz_convert
之后的末尾添加.dt.tz_localize(None)
以上是关于将纪元时间戳列转换为带有时区的日期时间的主要内容,如果未能解决你的问题,请参考以下文章