2009-08-19 80 views
31

¿Es posible con Python para configurar la zona horaria al igual que este en PHP:Configuración zona horaria en Python

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

Realmente no puedo instalar cualquier otro módulo, etc, ya que estoy usando alojamiento web compartido.

¿Alguna idea?

+1

[a convertir el tiempo entre zonas horarias, se podría usar el módulo 'pytz'] (http://stackoverflow.com/a/18646797/4279) por ejemplo,' tz = pytz.timezone ('Europe/London'); london_time = tz.normalize (aware_dt.astimezone (tz)) '. Para obtener la hora local como un objeto 'datetime' consciente:' current_local_time = datetime.now (tzlocal.get_localzone()) '. – jfs

Respuesta

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' 

para obtener los valores específicos que ha enumerado:

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

Ver here para obtener una lista completa de las directivas. Tenga en cuenta que la función strftime() siempre devolverá una cadena, no un número entero u otro tipo.

+9

"tzset" es una función exclusiva de Unix. Arrg! – mjhm

0

No es una respuesta, pero ...

Para obtener datetime componentes de forma individual, un mejor uso 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 
#) 

Ahora es fácil de conseguir las piezas:

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

Para Windows puede usar:

Ejecución de los comandos del símbolo del sistema de Windows en python.

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

En las ventanas orden Try indicador:

Esto le da a la zona horaria actual:

tzutil/g

Esto da una lista de zonas horarias:

tzutil/l

Esto establecerá la zona horaria:

tzutil/s "América Central Standard Time"

Para mayor referencia: http://woshub.com/how-to-set-timezone-from-command-prompt-in-windows/

+0

específico para Windows, aunque –

Cuestiones relacionadas