2009-08-19 6 views
31

Est-il possible avec Python pour définir le fuseau horaire comme ça en PHP:fuseau horaire de réglage en Python

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

Je ne peux pas vraiment installer d'autres modules etc que j'utilise l'hébergement Web partagé.

Des idées?

+1

[pour convertir le temps entre les fuseaux horaires, vous pourrait utiliser le module 'pytz'] (http://stackoverflow.com/a/18646797/4279) par exemple,' tz = pytz.timezone ('Europe/London'); london_time = tz.normalize (aware_dt.astimezone (tz)) '. Pour obtenir l'heure locale en tant qu'objet 'datetime' conscient:' current_local_time = datetime.now (tzlocal.get_localzone()) '. – jfs

Répondre

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' 

Pour obtenir les valeurs spécifiques que vous avez énumérés:

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

Voir here pour une liste complète des directives. Gardez à l'esprit que la fonction strftime() retournera toujours une chaîne, pas un entier ou un autre type.

+9

"tzset" est une fonction Unix uniquement. Arrg! – mjhm

0

Ce n'est pas une réponse, mais ...

Pour obtenir datetime composants individuellement, une meilleure utilisation 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 
#) 

Il est maintenant facile d'obtenir les pièces:

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

Pour les fenêtres, vous pouvez utiliser:

Exécution des commandes d'invite de commande Windows en python.

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

Dans commandes Windows essayer rapide:

Cela donne fuseau horaire actuel:

tzutil/g

Cela donne une liste des fuseaux horaires:

tzutil/l

Cela va régler le fuseau horaire:

"Amérique Centrale heure normale" de tzutil/s

Pour d'autres références: http://woshub.com/how-to-set-timezone-from-command-prompt-in-windows/

+0

spécifique aux fenêtres, bien que –

Questions connexes