51

Python 2.x 有一个很棒的函数,叫做 dateutil.parser,它可以将 ISO8601 格式的日期转换为 python 日期时间值。它在 Python 3 中不存在。替代品是什么?

4

4 回答 4

83

dateutil 是第三方模块。它最近被移植到带有 dateutil 2.0 的 Python 3,并且解析器函数也被移植了。

所以替换是dateutil.parser. 你只是忘了安装它。

于 2011-05-12T06:03:50.770 回答
12

您应该首先使用 pip search 找到模块的确切名称:

pip search dateutil

然后,安装你想要的版本(假设 py-dateutil):

pip install py-dateutil

现在,启动 shell 并导入模块(陷阱:模块不称为 py-dateutil):

import dateutil.parser

你应该很高兴去!

于 2017-04-09T16:45:08.450 回答
2

datetime您可以通过模块的strptime方法来实现这一点。

>>> import datetime
>>> mydate = datetime.datetime(2002,12,4, 12, 30).isoformat()
>>> mydate
'2002-12-04T12:30:00'
>>> parsed_date = datetime.datetime.strptime( mydate, "%Y-%m-%dT%H:%M:%S" )
>>> parsed_date
datetime.datetime(2002, 12, 4, 12, 30)

strptime有一组灵活的选项来解析你的日期。有关详细信息,请参阅strftime() 和 strptime() 行为

于 2011-05-12T04:08:19.633 回答
-9

如果你安装 pandas,它会自带。至少它发生在我身上。

C:\Users\dirak3d>pip install pandas
Collecting pandas
  Downloading https://files.pythonhosted.org/packages/a9/e8/ca7637c51767809cd7328dd01e246b8f2ec0fde566c9b7440b91d9a33460/pandas-0.23.3-cp37-cp37m-win32.whl (6.8MB)
    100% |████████████████████████████████| 6.8MB 137kB/s
Collecting pytz>=2011k (from pandas)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 216kB/s
Requirement already satisfied: numpy>=1.9.0 in c:\users\dirak3d\appdata\local\programs\python\python37-32\lib\site-packages (from pandas) (1.15.0)
Collecting python-dateutil>=2.5.0 (from pandas)
  Downloading https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl (211kB)
    100% |████████████████████████████████| 215kB 23kB/s
Collecting six>=1.5 (from python-dateutil>=2.5.0->pandas)
  Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: pytz, six, python-dateutil, pandas
于 2018-08-04T10:56:15.377 回答