Chcę uzyskać domyślną strefę czasową (PST) mojego systemu z Pythona. Jaki jest najlepszy sposób na zrobienie tego? Chciałbym uniknąć rozwidlenia innego procesu.Uzyskaj informacje o strefie czasowej systemu w języku Python?
Odpowiedz
Sprawdź moduł Python Time.
from time import gmtime, strftime
print strftime("%z", gmtime())
Pacific Standard Time
To powinno działać:
import time
time.tzname
zwraca krotki dwóch ciągów: pierwszy to nazwa lokalnej strefy czasowej non-DST, drugi jest nazwa lokalnej strefy czasowej DST.
Aby zrobić to jeszcze dalej, możesz użyć 'time.tzname [time.daylight]', aby uzyskać nazwę aktualna strefa czasowa, uwzględniająca czas letni. –
Znowu "time.daylight" nie oznacza, że DST jest aktywne. Wskazuje jedynie, czy strefa czasowa jest obserwowana, czy nie. Szukasz "time.localtime(). Tm_isdst". – marr75
Po prostu, aby dodać dla użytkowników Windows, wartości strefy czasowej zostały zdefiniowane w 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Strefy czasowe \' – swdev
Jeśli wolisz UTC przesunięcia na smyczki:
time.timezone/-(60*60)
To obliczy niepoprawnie, kiedy (/ jeśli) czasu letniego obowiązuje. – marr75
Daje przesunięcie UTC jak w odpowiedzi ThomasH, ale bierze pod uwagę czasu letniego.
>>> import time
>>> offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone
>>> offset/60/60 * -1
-9
Wartość time.timezone
lub time.altzone
w sekundach zachodzie UTC (z obszarów na wschód od UTC coraz wartość ujemną). Jest to przeciwieństwo tego, jak nam się to podoba, stąd * -1.
będzie zero, jeśli obecnie nie działają oszczędności w świetle dziennym (chociaż może to nie być poprawne, jeśli obszar ostatnio zmienił swoje prawo dotyczące oszczędności czasu letniego).
EDYCJA: marr75 jest poprawny, odpowiednio edytowałem odpowiedź.
Dla bezpieczeństwa uważam, że kontrola przesunięcia powinna zostać odwrócona (altzone, jeśli dst = 1 else timezone). Jeśli status DST jest jakoś nieznany, 'tm_isdst' będzie mieć wartość" -1 ", a bieżący kod będzie domyślnie" altzone "w tym przypadku. Dla regionów, które nie używają DST, ta wartość nigdy nie jest poprawna, więc 'strefa czasowa' powinna prawdopodobnie być awarią. (Nie jestem pewien, czy '-1' jest rzeczywiście możliwe z' localtime' chociaż) – nmclean
[wszystko altone, rozwiązanie oparte na strefach czasowych może zawieść w niektórych przypadkach krawędzi] (http://bugs.python.org/issue1647654) – jfs
Fragmenty kodu do obliczania przesunięcia są nieprawidłowe, patrz http://bugs.python.org/issue7229.
Prawidłowy sposób obsłużyć to:
def local_time_offset(t=None):
"""Return offset of local zone from GMT, either at present or at time t."""
# python2.3 localtime() can't take None
if t is None:
t = time.time()
if time.localtime(t).tm_isdst and time.daylight:
return -time.altzone
else:
return -time.timezone
Jest to według wszelkiego prawdopodobieństwa, a nie dokładnym pytaniu, że PO prosił, ale są dwie nieprawidłowe fragmenty na stronie i czasowych błędów ssać wyśledzić i napraw.
1. jeśli znasz 'tm_isdst'; nie musisz sprawdzać 'daylight' 2. [all' altzone', 'timezone'-based solution może zawieść w niektórych przypadkach krawędziowych] (http://bugs.python.org/issue1647654) – jfs
- 1. Python: wyświetla czas w innej strefie czasowej
- 2. ISO8601 do DateTime z zachowanymi informacjami o strefie czasowej
- 3. Java nie generuje poprawnej informacji o strefie czasowej
- 4. Czy istnieje centralne repozytorium informacji o strefie czasowej?
- 5. Google auth2 API brakuje informacji o strefie czasowej?
- 6. C#/ASP.NET MVC3, konwersja z DateTime.UtcNow, na strefę czasową klienta. Jak uzyskać informacje o strefie czasowej?
- 7. Uzyskaj informacje o funkcjach dzwoniących w pythonie
- 8. Zmienianie znacznika czasu uniksowego w innej strefie czasowej
- 9. Jak przekonwertować DateTime w określonej strefie czasowej?
- 10. Jak uzyskać aktualny czas w innym Strefie czasowej w Delphi?
- 11. Uzyskaj informacje o sprzęcie w systemie Android?
- 12. Uzyskaj informacje o żądaniu w widoku pomocnika
- 13. Uzyskaj informacje o użytkowniku w Crashlytics
- 14. Uzyskaj informacje o użytkowniku w szablonach django
- 15. Uzyskaj unikalne identyfikatory systemu w języku C#
- 16. Uzyskaj szczegółowe informacje o dostawcy członkostwa
- 17. Uzyskaj informacje o automatycznym obrocie na Androidzie
- 18. Uzyskaj informacje o DLNA z PHP
- 19. Uzyskaj informacje o źródle zdarzenia z jQuery
- 20. Facebook iOS 6 - uzyskaj informacje o użytkowniku
- 21. Uzyskaj informacje o kompilacji z Jenkins API
- 22. Jak znaleźć informacje o funkcji w python?
- 23. javascript pobierz sygnaturę czasową w strefie czasowej systemu nie w UTC
- 24. Jak przechowywać datetimes w UTC i lokalnej strefie czasowej
- 25. Python - datetime określonej strefy czasowej
- 26. Data w innej strefie czasowej: C++ w systemie Linux
- 27. Wyświetlanie czasu w lokalnej strefie czasowej w WPF/XAML
- 28. Uzyskaj nazwę folderu pliku w języku Python
- 29. Dlaczego PHP uważa, że złym pomysłem jest poleganie na strefie czasowej systemu?
- 30. Jak sformatować plik javax.time.Instant jako ciąg w lokalnej strefie czasowej?
Czy szukamy różnych dokumentów, czy jest to "% Z'"? – SilentGhost
@ SilentGhost: "% z" i "% z" są dokładnie takie same w Pythonie. – ahawker
tak, ale ** wielkie litery ** 'Z' i ** małe litery **' z' nie są. – SilentGhost