2009-08-17 14 views
6

Próbuję przekonwertować obiekt datetime na znacznik czasu UNIX (najlepiej w milisekundach, choć nie miałbym nic przeciwko i bez)."datetime.time" nie ma "mktime"

mktime wydaje się być metoda, która zwykle dostaje to jednak wciąż otrzymuję błąd:

AttributeError: Rodzaj obiektu „datetime.time” nie ma atrybutu „mktime”.

Czy ktoś może mi powiedzieć, co robię źle? W kółko krąży!

+1

Kod przykładowy proszę ... – Kieron

+0

Obiekt standardowy z datą. Używam tego kodu: .. time.mktime (datetimeobject.timetuple()) .. Jak również wiele wariacji. – Federer

+0

@malcmcmul: Proszę nie komentować własnego pytania. Dokonaj edycji samego pytania. –

Odpowiedz

20

Chyba zrobili

from datetime import datetime, time 

zamiast

import time 
from datetime import datetime 

tak, że obiekt o nazwie time jest rzeczywiście pochodzące z modułu datetime, a nie modułu czas.

+0

wielkie dzięki. tylko kolejne pytanie. Jak dołączyć milisekundy do znacznika czasu powrotu? – Federer

+2

'time.mktime (datetimeobject.timetuple()) + datetimeobject.microsecond/1000000.0' –

1

W rzeczywistości, nawet przy użyciu powyższej odpowiedzi, nadal otrzymuję ten sam komunikat o błędzie.

Ive rozwiązać mój problem przy użyciu

>>>>from time import mktime as mktime 
>>>>today = mktime(2012, 12, 21, 0, 0, 0, 0, 0, 0) 

Nie wiem dlaczego, ale to działa tylko przy użyciu aliasu (jak mktime) ... może ktoś powiedzieć mi powód ...

+0

powinieneś opublikować to jako nowe pytania. – mtk