将datetime64 [ns,UTC]转换为datetime64 python

问题描述 投票:0回答:3

我有一个具有UTC日期时间的列

2020-01-01 00:00:00+00:00   

有人可以帮我将其转换为datetime64,例如:

2020-01-01 
python datetime
3个回答
0
投票

要删除时区信息,请使用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')

0
投票

[尝试使用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'))

0
投票

如果您使用熊猫(似乎是这种情况),可以像这样更改它:

df.dates.apply(lambda x: x.date()) # where dates is your datetime column
© www.soinside.com 2019 - 2024. All rights reserved.