2024-05-13 23:35:56 发布
网友
如果我在UTC format中有一堆日期和时间的数据,如何将它们转换为EST。
UTC format
EST
它可以确定它们每年什么时候会自动地-4(in summer)和-5(in winter)? 谢谢
-4(in summer)
5(in winter)
您需要使用pytz模块(可从PyPI获得):
pytz
import pytz from datetime import datetime est = pytz.timezone('US/Eastern') utc = pytz.utc fmt = '%Y-%m-%d %H:%M:%S %Z%z' winter = datetime(2016, 1, 24, 18, 0, 0, tzinfo=utc) summer = datetime(2016, 7, 24, 18, 0, 0, tzinfo=utc) print winter.strftime(fmt) print summer.strftime(fmt) print winter.astimezone(est).strftime(fmt) print summer.astimezone(est).strftime(fmt)
将打印:
2016-01-24 18:00:00 UTC+0000 2016-07-24 18:00:00 UTC+0000 2016-01-24 13:00:00 EST-0500 2016-07-24 14:00:00 EDT-0400
最后两行输出举例说明了需要使用'US/Eastern'而不是'EST'的原因。
'US/Eastern'
'EST'
如果您有一个具有对象数据类型的pandas序列,那么可以首先使用pd.to_datetime()将其转换为日期时间序列
df[col] = pd.to_datetime(your_series, format = '%Y-%m-%d %H:%M:%S', errors ='coerce')
使用series.dt.tz检查是否可以识别时区
df[col].dt.tz
如果它不知道时区,我们应该使用series.dt.tz_localize()使它知道时区。另外,请阅读此函数的不明确且不存在的参数
df[col] = your_series[col].dt.tz_localize('UTC')
现在通过series.dt.tz_convert()将这个序列转换成所需的时区
df[col] = your_series[col].dt.tz_convert('US/Eastern')
以上方法将考虑夏令时。如果您想查看更多时区,可以pip安装pytz和
import pytz pytz.common_timezones
您需要使用
pytz
模块(可从PyPI获得):将打印:
最后两行输出举例说明了需要使用
'US/Eastern'
而不是'EST'
的原因。如果您有一个具有对象数据类型的pandas序列,那么可以首先使用pd.to_datetime()将其转换为日期时间序列
使用series.dt.tz检查是否可以识别时区
如果它不知道时区,我们应该使用series.dt.tz_localize()使它知道时区。另外,请阅读此函数的不明确且不存在的参数
现在通过series.dt.tz_convert()将这个序列转换成所需的时区
以上方法将考虑夏令时。如果您想查看更多时区,可以pip安装pytz和
相关问题 更多 >
编程相关推荐