python Conversione della stringa timestamp di unix in data leggibile




7 Answers

>>> from datetime import datetime
>>> datetime.fromtimestamp(1172969203.1)
datetime.datetime(2007, 3, 4, 0, 46, 43, 100000)

Tratto da http://seehuhn.de/pages/pdate

python datetime unix-timestamp strftime

Ho una stringa che rappresenta un timestamp unix (ad esempio "1284101485") in Python e mi piacerebbe convertirlo in una data leggibile. Quando uso time.strftime , ottengo un TypeError :

>>>import time
>>>print time.strftime("%B %d %Y", "1284101485")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not str



>>> import time
>>> time.ctime(int("1284101485"))
'Fri Sep 10 16:51:25 2010'
>>> time.strftime("%D %H:%M", time.localtime(int("1284101485")))
'09/10/10 16:51'



Per un timestamp leggibile da un timestamp UNIX, ho usato questo negli script prima:

import os, datetime

datetime.datetime.fromtimestamp(float(os.path.getmtime("FILE"))).strftime("%B %d, %Y")

Produzione:

"26 dicembre 2012"




Oltre a usare il pacchetto time / datetime , i panda possono anche essere usati per risolvere lo stesso problema. Ecco come possiamo usare i panda per convertire il timestamp in data leggibile :

I timestamp possono essere in due formati:

  1. 13 cifre (millisecondi) - Per convertire millisecondi ad oggi, utilizzare:

    import pandas
    result_ms=pandas.to_datetime('1493530261000',unit='ms')
    str(result_ms)
    
    Output: '2017-04-30 05:31:01'
    
  2. 10 cifre (secondi) - Per convertire i secondi fino alla data, utilizzare:

    import pandas
    result_s=pandas.to_datetime('1493530261',unit='s')
    str(result_s)
    
    Output: '2017-04-30 05:31:01'
    



timestamp ="124542124"
value = datetime.datetime.fromtimestamp(timestamp)
exct_time = value.strftime('%d %B %Y %H:%M:%S')

Ottieni anche la data leggibile dal timestamp con il tempo, inoltre puoi modificare il formato della data.




una fodera veloce e sporca:

'-'.join(str(x) for x in list(tuple(datetime.datetime.now().timetuple())[:6]))

'2013-5-5-1-9-43'




C'è un modo interessante in cui non devi preoccuparti dei fusi orari, utc, ecc. Converti semplicemente la stringa in formato data Excel e quindi in una data / ora leggibile:

import datetime

def xldate_to_datetime(xldate):
    temp = datetime.datetime(1899, 12, 30)
    delta = datetime.timedelta(days=xldate)
    return temp+delta

ts = "1284101485"
tsxl = ((int(ts)/60)/60)/24 + 25569
readabledate =  xldate_to_datetime(tsxl)
print(readabledate)



Related