now libreria example comando python time timezone

libreria - time.clock python



Mostrar la hora en un huso horario diferente (6)

¿Hay una manera elegante de mostrar la hora actual en otra zona horaria?

Me gustaría tener algo con el espíritu general de:

cur = <Get the current time, perhaps datetime.datetime.now()> print("Local time {}".format(cur)) print("Pacific time {}".format(<something like cur.tz(''PST'')>)) print("Israeli time {}".format(<something like cur.tz(''IST'')>))


Esta es mi implementación:

from datetime import datetime from pytz import timezone def local_time(zone=''Asia/Jerusalem''): other_zone = timezone(zone) other_zone_time = datetime.now(other_zone) return other_zone_time.strftime(''%T'')


Necesito información de tiempo todo el tiempo, así que tengo este script .py ordenado en mi servidor que me permite simplemente seleccionar y deseleccionar qué zonas horarias quiero mostrar en orden de este a oeste.

Se imprime así:

Australia/Sydney : 2016-02-09 03:52:29 AEDT+1100 Asia/Singapore : 2016-02-09 00:52:29 SGT+0800 Asia/Hong_Kong : 2016-02-09 00:52:29 HKT+0800 EET : 2016-02-08 18:52:29 EET+0200 CET : 2016-02-08 17:52:29 CET+0100 <- you are HERE UTC : 2016-02-08 16:52:29 UTC+0000 Europe/London : 2016-02-08 16:52:29 GMT+0000 America/New_York : 2016-02-08 11:52:29 EST-0500 America/Los_Angeles : 2016-02-08 08:52:29 PST-0800

Aquí el código fuente es un archivo .py en mi github aquí: https://github.com/SpiRaiL/timezone O el enlace de archivo directo: https://raw.githubusercontent.com/SpiRaiL/timezone/master/timezone.py

En el archivo hay una lista como esta: simplemente ponga una ''p'' en los lugares que desea imprimir. Ponga una ''h'' para su propio huso horario si lo quiere especialmente marcado.

('' '',''America/Adak''), ('' '',''Africa/Abidjan''), ('' '',''Atlantic/Azores''), ('' '',''GB''), ('' '',''America/Anchorage''), ('' '',''Africa/Accra''), ('' '',''Atlantic/Bermuda''), ('' '',''GB-Eire''), ('' '',''America/Anguilla''), ('' '',''Africa/Addis_Ababa''), ('' '',''Atlantic/Canary''), ('' '',''GMT''), ('' '',''America/Antigua''), ('' '',''Africa/Algiers''), ('' '',''Atlantic/Cape_Verde''), ('' '',''GMT+0''), ('' '',''America/Araguaina''), ('' '',''Africa/Asmara''), ('' '',''Atlantic/Faeroe''), ('' '',''GMT-0''), ('' '',''America/Argentina/Buenos_Aires''), ('' '',''Africa/Asmera''), ('' '',''Atlantic/Faroe''), ('' '',''GMT0''), ('' '',''America/Argentina/Catamarca''), ('' '',''Africa/Bamako''), ('' '',''Atlantic/Jan_Mayen''), ('' '',''Greenwich''), ('' '',''America/Argentina/ComodRivadavia''), ('' '',''Africa/Bangui''), ('' '',''Atlantic/Madeira''), ('' '',''HST''), ('' '',''America/Argentina/Cordoba''), ('' '',''Africa/Banjul''), ('' '',''Atlantic/Reykjavik''), ('' '',''Hongkong''),


Puede usar la biblioteca de pytz :

>>> from datetime import datetime >>> import pytz >>> utc = pytz.utc >>> utc.zone ''UTC'' >>> eastern = pytz.timezone(''US/Eastern'') >>> eastern.zone ''US/Eastern'' >>> amsterdam = pytz.timezone(''Europe/Amsterdam'') >>> fmt = ''%Y-%m-%d %H:%M:%S %Z%z'' >>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0)) >>> print loc_dt.strftime(fmt) 2002-10-27 06:00:00 EST-0500 >>> ams_dt = loc_dt.astimezone(amsterdam) >>> ams_dt.strftime(fmt) ''2002-10-27 12:00:00 CET+0100''


Un método más simple:

from datetime import datetime from pytz import timezone south_africa = timezone(''Africa/Johannesburg'') sa_time = datetime.now(south_africa) print sa_time.strftime(''%Y-%m-%d_%H-%M-%S'')


Una forma, mediante la configuración de la zona horaria de la biblioteca C, es

>>> cur=time.time() >>> os.environ["TZ"]="US/Pacific" >>> time.tzset() >>> time.strftime("%T %Z", time.localtime(cur)) ''03:09:51 PDT'' >>> os.environ["TZ"]="GMT" >>> time.strftime("%T %Z", time.localtime(cur)) ''10:09:51 GMT''


Usted puede verificar esta pregunta .

O intenta usar pytz . Aquí puede encontrar una guía de instalación con algunos ejemplos de uso.