簡體   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