15

我正在抓取一个页面,其中包括日期信息。所以我有一个名为的变量warrant_issued,它包含u'11/5/2003'——我想将它存储为机器可读的日期。PHP 有一个非常方便的strtotime函数。我希望datetimestrptime对我有帮助,但它似乎在我的版本中不可用datetime- 这是我的选项卡中的所有内容datetime.

In [231]: datetime.
datetime.MAXYEAR           datetime.__hash__          datetime.__sizeof__
datetime.MINYEAR           datetime.__init__          datetime.__str__
datetime.__class__         datetime.__name__          datetime.__subclasshook__
datetime.__delattr__       datetime.__new__           datetime.date
datetime.__dict__          datetime.__package__       datetime.datetime
datetime.__doc__           datetime.__reduce__        datetime.datetime_CAPI
datetime.__file__          datetime.__reduce_ex__     datetime.time
datetime.__format__        datetime.__repr__          datetime.timedelta
datetime.__getattribute__  datetime.__setattr__       datetime.tzinfo

我正在使用 iPython 2.7.2+

我在这里吠错树了吗?u'11/5/2003'变成约会对象的最佳方式是什么?

4

4 回答 4

11

strptime()绝对是正确的方法,它只是类的类方法datetime令人困惑的datetime模块的一部分)。

也就是说,这是datetime.datetime.strptime()您正在寻找的(而不是datetime.strptime().

于 2012-11-25T00:05:18.550 回答
6

试试这个:

此处datetime module的文档一起使用

>>>import datetime
>>>a = u'11/5/2003'
>>>time1 = datetime.datetime.strptime(a, "%m/%d/%Y")
>>>print time1
datetime.datetime(2003, 11, 5, 0, 0)

ipython

In [1]: import datetime

In [2]: a = u'11/5/2003'

In [3]: time1 = datetime.datetime.strptime(a, "%m/%d/%Y")

In [4]: print time1
2003-11-05 00:00:00

此处time module的文档一起使用

>>>import time
>>>a = u'11/5/2003'
>>>time1 = time.strptime(a, "%m/%d/%Y")
>>>print time1
time.struct_time(tm_year=2003, tm_mon=11, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=309, tm_isdst=-1)
于 2012-11-25T00:10:48.553 回答
4

感谢@David Cain 的评论回复:

dateutil 库可以解析日期时间字符串(推断它们的格式)。但是,请注意“11/5/2003”不是一种明确的格式(MM/DD 或 DD/MM 因地区而异),因此在这种情况下应谨慎使用 dateutil。——大卫凯恩

因此,另一种好的做法是使用 dateutil 库:

>>> from dateutil.parser import parse
>>> dt = parse('2016/12/05 05:18 pm')
>>> dt
datetime.datetime(2016, 12, 5, 17, 18)
>>> dt.timestamp()
1480929480.0

>>> parse('16/11/12')
>>> datetime.datetime(2012, 11, 16, 0, 0)
于 2016-06-26T06:23:56.407 回答
1

strtotime您在 PHP 中使用的工作可能与dateparser.

请注意,如果您没有dateparser库。

安装它

pip3 install dateparser 

如果您使用的是 conda

conda install dateparser

该库以与语言无关的方式理解 200 多种语言区域和多种格式。

解析通用术语也有效:

import dateparser
print (dateparser.parse('yesterday')) #2019-05-19 08:08:14.934992

并且还支持非公历系统。

于 2019-05-07T22:30:53.090 回答