2009-08-19 13 views
31

Czy to możliwe, z Python, aby ustawić strefę czasową, tak jak to w PHP:Ustawienie strefy czasowej w Pythonie

date_default_timezone_set("Europe/London"); 
$Year = date('y'); 
$Month = date('m'); 
$Day = date('d'); 
$Hour = date('H'); 
$Minute = date('i'); 

nie mogę instalować żadnych innych modułów itp jak używam wspólne hosting.

Wszelkie pomysły?

+1

[przekonwertować czasu między strefami czasowymi, ty może używać modułu 'pytz' (http://stackoverflow.com/a/18646797/4279) np.' tz = pytz.timezone ('Europe/London'); london_time = tz.normalize (aware_dt.astimezone (tz)) '. Aby uzyskać czas lokalny jako świadomy obiekt 'datetime':' current_local_time = datetime.now (tzlocal.get_localzone()) '. – jfs

Odpowiedz

55
>>> import os, time 
>>> time.strftime('%X %x %Z') 
'12:45:20 08/19/09 CDT' 
>>> os.environ['TZ'] = 'Europe/London' 
>>> time.tzset() 
>>> time.strftime('%X %x %Z') 
'18:45:39 08/19/09 BST' 

Aby uzyskać konkretne wartości już wymienione:

>>> year = time.strftime('%Y') 
>>> month = time.strftime('%m') 
>>> day = time.strftime('%d') 
>>> hour = time.strftime('%H') 
>>> minute = time.strftime('%M') 

Zobacz here pełną listę dyrektyw. Należy pamiętać, że funkcja strftime() zawsze zwraca ciąg znaków, a nie liczbę całkowitą lub inny typ.

+9

"tzset" jest funkcją wyłącznie dla systemu Unix. Arrg! – mjhm

0

To nie jest odpowiedź, ale ...

Aby uzyskać datetime składników osobno, lepiej użyć datetime.timetuple:

time = datetime.now() 
time.timetuple() 
#-> time.struct_time(
# tm_year=2014, tm_mon=9, tm_mday=7, 
# tm_hour=2, tm_min=38, tm_sec=5, 
# tm_wday=6, tm_yday=250, tm_isdst=-1 
#) 

Teraz łatwo dostać części:

ts = time.timetuple() 
ts.tm_year 
ts.tm_mon 
ts.tm_mday 
ts.tm_hour 
ts.tm_min 
ts.tm_sec 
1

W przypadku okien można użyć:

Uruchamianie poleceń wiersza polecenia systemu Windows w pythonie.

import os 
os.system("tzutil /s \"Central Standard Time\""); 

W oknach wiersza polecenia spróbować:

Daje aktualną strefę czasową:

tzutil/g

Daje listę stref czasowych:

tzutil/l

Spowoduje to ustawienie Strefa czasowa:

tzutil/s "Ameryka Środkowa Standardowy czas"

Dla dalszego odniesienia: http://woshub.com/how-to-set-timezone-from-command-prompt-in-windows/

+0

specyficzne dla systemu Windows –

Powiązane problemy