2009-08-19 12 views
31

E 'possibile con Python per impostare il fuso orario proprio come questo in PHP:impostazione del fuso orario in Python

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

non posso installare altri moduli ecc come sto utilizzando web hosting condiviso.

Qualche idea?

+1

[per convertire tempo tra fusi orari, è potrebbe usare il modulo 'pytz'] (http://stackoverflow.com/a/18646797/4279) ad esempio,' tz = pytz.timezone ('Europe/London'); london_time = tz.normalize (aware_dt.astimezone (tz)) '. Per ottenere l'ora locale come un oggetto 'datetime' consapevole:' current_local_time = datetime.now (tzlocal.get_localzone()) '. – jfs

risposta

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' 

per ottenere i valori specifici che hai elencato:

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

Vedi here per un elenco completo delle direttive. Tieni presente che la funzione strftime() restituirà sempre una stringa, non un numero intero o altro tipo.

+9

"tzset" è una funzione solo Unix. Arrg! – mjhm

0

Non è una risposta, ma ...

Per ottenere datetime componenti singolarmente, un uso migliore 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 
#) 

Ora è facile per ottenere le parti:

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

Per Windows è possibile utilizzare:

Esecuzione dei comandi del prompt dei comandi di Windows in python.

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

In Windows prompt dei comandi di prova:

Questo dà fuso orario corrente:

tzutil/g

Questo dà un elenco di fusi orari:

tzutil/l

Questo imposterà il fuso orario:

tzutil/s "Centro America Standard Time"

Per ulteriori riferimenti: http://woshub.com/how-to-set-timezone-from-command-prompt-in-windows/

+0

specifico per Windows, però –