如何将字符串‘2020-01-06T00:00:00.000Z’转换为DateTime对象?

nukf8bse  于 2022-09-21  发布在  其他
关注(0)|答案(4)|浏览(160)

正如问题所说,我有一系列类似'2020-01-06T00:00:00.000Z'的字符串。如何使用Python将此系列转换为datetime?我更喜欢Pandas身上的方法。如果没有,有没有办法解决这个问题?谢谢大家。

string '2020-01-06T00:00:00.000Z' 
convert to 2020-01-06 00:00:00 under datetime object
ryevplcw

ryevplcw1#

对于Python3.7+,这可以通过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,您可以执行以下操作:

>>> 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'
>>>
eqqqjvef

eqqqjvef2#

给定raw_time is列包含字符串time。你可以做到的

pd.to_datetime(df['raw_time'])
w8f9ii69

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]
8ljdwjyq

8ljdwjyq4#

您可以使用python-dateutil

from dateutil import parser
parser.isoparse("2020-01-06T00:00:00.000Z")

相关问题