2012-04-21 10 views
21
import time 
t = time.ctime() 

Dla mnie w tej chwili t jest 'Sat Apr 21 11:58:02 2012'. Mam więcej takich danych.Jak przekonwertować `ctime` na` datetime` w języku Python?

Moje pytanie brzmi:

  • Jak przekonwertować t do datetime w Pythonie? Czy są do tego jakieś moduły?

Próbowałem dokonać czas dict a następnie przekonwertować t, ale czuję się jak to nie jest najlepszy sposób to zrobić w Pythonie.

Szczegóły:

  • Mam ctime listy (jak ['Sat Apr 21 11:56:48 2012', 'Sat Apr 21 11:56:48 2012']).
  • Chcę przekonwertować zawartość na datetime, a następnie zapisać to w db z timestamp.
+2

Dlaczego po prostu nie zrobić z '' import datetime datetime' DateTime.Now() ' – jamylak

+0

dokładnie, Mam ciąg znaków: "Sat Apr 21 11:58:02 2012" i chcę przekonwertować go na datetime. – flreey

+0

Konwersja z takich łańcuchów jest mniej niż idealna, ale to pytanie dostaje tę odpowiedź. –

Odpowiedz

24

Należy użyć strptime: funkcja ta analizuje ciąg reprezentujący czas według formatu. Wartością zwracaną jest struct_time.

Parametr formatu przyjmuje wartość domyślną %a %b %d %H:%M:%S %Y, która jest zgodna z formatowaniem zwróconym przez funkcję ctime().

Więc w twoim przypadku po prostu spróbować następujący wiersz, ponieważ domyślnym formatem jest jednym z ctime:

import datetime 
import time 

datetime.datetime.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y") 
+0

Próbuję w ten sposób godzinami, ale nadal nie mogę przekonwertować "sob. 21 kwietnia 11: 58:02 2012 'do datetime poprawnie. – flreey

+0

@ flreey właśnie naprawił to, to powinno teraz działać dobrze. –

+0

dziękuję, to moja wina, ustawiłem złe parametry.datetime.strptime (time.ctime(), '% a% b% d% H:% M:% S% Y') działa – flreey

Powiązane problemy