正如问题所说,我有一系列类似'2020-01-06T00:00:00.000Z'的字符串。如何使用Python将此系列转换为datetime?我更喜欢Pandas身上的方法。如果没有,有没有办法解决这个问题?谢谢大家。
'2020-01-06T00:00:00.000Z'
datetime
string '2020-01-06T00:00:00.000Z' convert to 2020-01-06 00:00:00 under datetime object
ryevplcw1#
对于Python3.7+,这可以通过datetime.fromisoformat()和对源字符串进行一些调整来实现:
datetime.fromisoformat()
>>> from datetime import datetime >>> datetime.fromisoformat('2020-01-06T00:00:00.000Z'[:-1] + '+00:00') datetime.datetime(2020, 1, 6, 0, 0, tzinfo=datetime.timezone.utc) >>>
以下是一种更具毕达式风格的方法来达到同样的效果:
>>> from datetime import datetime >>> from datetime import timezone >>> datetime.fromisoformat('2020-01-06T00:00:00.000Z'[:-1]).astimezone(timezone.utc) datetime.datetime(2020, 1, 6, 3, 0, tzinfo=datetime.timezone.utc) >>>
最后,要将其格式化为%Y-%m-%d %H:%M:%S,您可以执行以下操作:
%Y-%m-%d %H:%M:%S
>>> d = datetime.fromisoformat('2020-01-06T00:00:00.000Z'[:-1]).astimezone(timezone.utc) >>> d.strftime('%Y-%m-%d %H:%M:%S') '2020-01-06 00:00:00' >>>
eqqqjvef2#
给定raw_time is列包含字符串time。你可以做到的
raw_time
pd.to_datetime(df['raw_time'])
w8f9ii693#
如果你想要Pandas的方法,试试这个:
sample series `s` Out[1792]: 0 2020-01-06T00:00:00.000Z 1 2020-01-06T01:00:00.000Z dtype: object s_time = pd.to_datetime(s).dt.tz_localize(None) Out[1796]: 0 2020-01-06 00:00:00 1 2020-01-06 01:00:00 dtype: datetime64[ns]
8ljdwjyq4#
您可以使用python-dateutil
from dateutil import parser parser.isoparse("2020-01-06T00:00:00.000Z")
4条答案
按热度按时间ryevplcw1#
对于Python3.7+,这可以通过
datetime.fromisoformat()
和对源字符串进行一些调整来实现:以下是一种更具毕达式风格的方法来达到同样的效果:
最后,要将其格式化为
%Y-%m-%d %H:%M:%S
,您可以执行以下操作:eqqqjvef2#
给定
raw_time
is列包含字符串time。你可以做到的w8f9ii693#
如果你想要Pandas的方法,试试这个:
8ljdwjyq4#
您可以使用python-dateutil