[英]How do I strtotime in python?
我正在抓一个包含日期信息等内容的页面。 所以我有一个名为warrant_issued
的变量,其中包含u'11/5/2003'
- 我想将其存储为机器可读日期。 PHP有一个方便的strtotime
功能,非常有效。 我希望datetime的strptime可以帮助我,但它似乎在我的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.