繁体   English   中英

我如何在python中使用strtotime?

[英]How do I strtotime in python?

我正在抓一个包含日期信息等内容的页面。 所以我有一个名为warrant_issued的变量,其中包含u'11/5/2003' - 我想将其存储为机器可读日期。 PHP有一个方便的strtotime功能,非常有效。 我希望datetimestrptime可以帮助我,但它似乎在我的datetime版本中没有 - 这是我的标签中的所有内容都在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'变成约会的最佳方法是什么?

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

也就是说, datetime.datetime.strptime()就是你要找的东西(而不是datetime.strptime()

尝试这个:

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)

感谢@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)

您在PHP中使用的strtotime可能与dateparser最相似。

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

安装它

pip3 install dateparser 

如果你正在使用conda

conda install dateparser

该库可以理解超过200种语言区域以及与语言无关的多种格式。

解析通用术语也有效:

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

并且还支持非公历日历系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM