我有一个带有UTC列的Panda df(不是时间序列索引,不是UTC日期字段)。数据在df中显示为:
2017-11-13 05:00:00
我需要创建一个新列(保持UTC列不变),但是要使用localtime并将其显示为:
2017-11-13 00:00:00
(假设美国/东部)
我尝试过:
df['DATE_TIME_UTC'].dt.tz_localize('US/Eastern')
但是显示:
2017-11-13 05:00:00-5:00
,当被推送到数据库时,它将再次显示UTC时间。请告知如何在新字段中将日期时间存储为本地时间。
谢谢
答案 0 :(得分:1)
日期时间当前是时区的天真,只有您用户知道它在UTC中。
您需要使用以下命令将其转换为时区感知的日期时间
# Create Timezone Aware using tz_localize
df['DATE_TIME_UTC'] = df['DATE_TIME_UTC'].dt.tz_localize('UTC')
接下来,您要将其转换为本地时区
# Convert to local timezone
df['DATE_TIME_LOCAL'] = df['DATE_TIME_UTC'].dt.tz_convert('US/Eastern')
现在,您应该拥有所需的时区信息。