Python oferuje różne pakiety ( datetime
, time
, calendar
) jak można zobaczyć tutaj w celu uporania się z czasem. Popełniłem duży błąd, korzystając z poniższego, aby uzyskać aktualny czas GMTtime.mktime(datetime.datetime.utcnow().timetuple())
Jaki jest prosty sposób na uzyskanie aktualnego czasu GMT w sygnaturze czasowej Uniksa?
python
time
unix-timestamp
Cory
źródło
źródło
datetime.utcnow()
zwraca bieżący czas UTC jako obiekt daty i godziny (zakładam, że chcesz użyć UTC, kiedy mówisz o „czasie GMT”).time.time()
zwraca uniksowy znacznik czasu bezpośrednio jako liczbę zmiennoprzecinkową. Oto jak przekonwertować datetime.date/datetime.datetime reprezentujący czas w UTC na sygnaturę czasową POSIX .Odpowiedzi:
Użyłbym time.time (), aby uzyskać znacznik czasu w sekundach od epoki.
Wynik:
W przypadku standardowej implementacji CPythona na większości platform zwróci to wartość UTC.
źródło
Wynik:
źródło
czy to pomaga?
Jak przekonwertować obiekt datetime w języku Python na znacznik czasu UNIX
źródło
time.time()
i nie potrzebujesz w ogóle konwersji daty i godziny.Lub po prostu używając standardowego modułu datetime
W zależności od żądanej rozdzielczości można obcinać lub mnożyć. Ten przykład generuje milis.
Jeśli chcesz mieć poprawną sygnaturę czasową Uniksa (w sekundach), usuń plik
* 1000
źródło
moment
biblioteki Javascriptmoment().utc().valueOf()
. Dokładnie to, czego szukałem. Dziękipython2 i python3
dobrze jest skorzystać z modułu czasowego
możesz także użyć modułu datetime, ale kiedy używasz strftime ('% s'), ale strftime konwertuje czas na czas lokalny!
python2
python3
źródło
time.time()
idatetime.utcnow().timestamp()
czy nie dać taką samą wartość!Podoba mi się ta metoda:
Inne zamieszczone tutaj metody nie gwarantują podania czasu UTC na wszystkich platformach lub zgłaszają tylko pełne sekundy. Jeśli chcesz mieć pełną rozdzielczość, działa to z dokładnością do mikro-sekundy.
źródło
utctimetuple
zamiast tego załatwia sprawę.Wynik:
źródło
time.time()
u mnie.dt.utcnow
zwracadatetime
bez informacji o strefie czasowej. Następniestrftime
zakłada, żedatetime
jest to czas lokalny.źródło
Przynajmniej w python3 działa to:
źródło