Graag update ik dit als ik het niet goed begrijp, maar hier zijn een paar voorbeelden die kunnen helpen. Merk op dat dit de datetime
. gebruikt module in plaats van time
.
>>> import datetime
Hier stellen we een voorbeeldtijdstempel in ts
en een formaat f
:
>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'
Net als wat je hierboven deed, gebruiken we de strptime
functie (van datetime.datetime
) om onze string om te zetten in een datetime
object gebaseerd op de opmaakparameter:
>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)
Nu omgekeerd - hier gebruiken we datetime.datetime.now()
om de huidige tijd te krijgen als een datetime
voorwerp:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
In de datetime
geval, de strftime
methode wordt eigenlijk aangeroepen op de datetime
object zelf, met de opmaakparameter als argument:
>>> now.strftime(f)
'2013-01-12 00:46:54'
In uw situatie kreeg u een foutmelding omdat time.time()
geeft een float terug:
>>> time.time()
1357980846.290231
Maar time.strftime
heeft een time
nodig tuple, vergelijkbaar met wat je hierboven had. Zonder in de gekmakende spiraal te komen die tijd is, een functie zoals time.localtime()
zal de eerder genoemde time
teruggeven tuple en zal terugkeren zoals je verwacht:
>>> now = time.localtime()
>>> now
time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0)
>>> f = '%Y-%m-%d %H:%M:%S'
>>> time.strftime(f, now)
'2013-01-12 00:55:55'