我有一个具有UTC日期时间的列
2020-01-01 00:00:00+00:00
有人可以帮我将其转换为datetime64,例如:
2020-01-01
要删除时区信息,请使用tz_convert
并将tz设置为None
:
import pandas as pd
s = pd.Series([pd.to_datetime('2020-01-01 00:00:00+00:00')])
s.dt.tz_convert(None)
# 0 2020-01-01
# dtype: datetime64[ns]
请注意,tz_convert(None)
的输出将是UTC(尽管没有明确说明)-即使输入的时区不是UTC。从docs:
dti = pd.date_range(start='2014-08-01 09:00', freq='H', periods=3, tz='Europe/Berlin')
# DatetimeIndex(['2014-08-01 09:00:00+02:00', '2014-08-01 10:00:00+02:00',
# '2014-08-01 11:00:00+02:00'],
# dtype='datetime64[ns, Europe/Berlin]', freq='H')
dti.tz_convert(None)
# DatetimeIndex(['2014-08-01 07:00:00', '2014-08-01 08:00:00',
# '2014-08-01 09:00:00'],
# dtype='datetime64[ns]', freq='H')
[尝试使用Python 3.2+的datetime
软件包。
import datetime
a='2020-01-01 00:00:00+00:00'
print (datetime.datetime.strptime(a,'%Y-%m-%d %H:%M:%S%z').strftime('%Y-%m-%d'))
如果您使用熊猫(似乎是这种情况),可以像这样更改它:
df.dates.apply(lambda x: x.date()) # where dates is your datetime column