Come convertire la Stringa data e ora di timestamp in Python?

Voglio convertire questa stringa datetimestring = 'Fri, 08 Jun 2012 22:40:26 GMT' timestamp usando python.

Ho provato

 timestamp = time.mktime(time.strptime(datetimestring, '%a, %d %B %Y %H:%M:%S GMT'))

ma i rapporti regex errore.

Non basta dire ci che si ha un errore, ci danno l’errore effettivo.
Soprattutto perché non c’è regex nel codice che hai incollato 🙂

OriginaleL’autore | 2012-06-09

3 risposte

  1. 6

    Si utilizza %B, che corrisponde al nome completo del mese, ma hai solo il nome abbreviato. Si dovrebbe usare %b invece:

    >>> import time
    >>> datetimestring = 'Fri, 08 Jun 2012 22:40:26 GMT' 
    >>> timestamp = time.mktime(time.strptime(datetimestring, '%a, %d %B %Y %H:%M:%S GMT'))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 454, in _strptime_time
        return _strptime(data_string, format)[0]
      File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 325, in _strptime
        (data_string, format))
    ValueError: time data 'Fri, 08 Jun 2012 22:40:26 GMT' does not match format '%a, %d %B %Y %H:%M:%S GMT'
    >>> timestamp = time.mktime(time.strptime(datetimestring, '%a, %d %b %Y %H:%M:%S GMT'))
    >>> timestamp
    1339209626.0

    OriginaleL’autore DSM

  2. 4

    importa il tempo
    importazione dateutil.parser dateparser

    datetimestring = 'Fri, 08 Jun 2012 22:40:26 GMT'
    dt = dateparser.parse(datetimestring)
    timestamp = int(time.mktime(dt.timetuple()))
    Questa soluzione converte stringa diversi formati di data, così non ti importa il tipo di formattazione.
    Questa soluzione funziona alla grande! Ma, penso necessari per installare questo: pypi.python.org/pypi/dateparser
    Penso che questa sia la soluzione migliore, perché non ha bisogno di essere specificato il formato della data, voto massimo

    OriginaleL’autore Plamen Tetevensky

  3. 0

    È possibile utilizzare dateparser per questo scopo.

    import dateparser >>> dateparser.parse('Fri, 08 Jun 2012 22:40:26 GMT') datetime.datetime(2012, 6, 8, 22, 40, 26)

    OriginaleL’autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *