Código de Python - Convertir una hora dada a cualquier zona horaria

Imágen de perfil

Convertir una hora dada a cualquier zona horariagráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(1)
Actualizado el 26 de Agosto del 2016 por xve (Creado el 11 de Mayo del 2016)
1.497 visualizaciones desde el 11 de Mayo del 2016. Una media de 56 por semana
Este código contiene tres funciones:
- convertToUTC: función que convierte nuestra fecha a UTC según la zona horaria de nuestro ordenador.
- convertToTimezone: función que convierte cualquier hora en formato UTC a cualquier zona horaria.
- offset: función que devuelve un string con offset de una zona horaria dada en relación al UTC
- offsetInMinutes: función que devuelve los minutos del offset de una zona horaria dada en relación al UTC

Requerimientos

Python 2.7

Versión 1.1
estrellaestrellaestrellaestrellaestrella(1)

Actualizado el 28 de Agosto del 2016 (Creado el 11 de Mayo del 2016)gráfica de visualizaciones de la versión: Versión 1.1
1.498 visualizaciones desde el 11 de Mayo del 2016. Una media de 56 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Se ha añadido la función offset() y offsetInMinutes()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: UTF-8 -*-
 
from datetime import datetime
import pytz
 
def convertToUTC(dtToConvert):
	"""
	Funcion que devuelve el datetime en UTC desde la zona horaria del ordenador
	Tiene que recibir la fecha y hora en formato datetime
	"""
	miFechaTimestamps=float(miFecha.strftime("%s"))
	utc_offset=datetime.fromtimestamp(miFechaTimestamps) - datetime.utcfromtimestamp(miFechaTimestamps)
	return dtToConvert+utc_offset
 
 
def offset(tzConvert):
	"""
	Funcion que devuelve el offset de una zona horaria en relacion al UTC de la
	fecha actual.
	Tiene que recibir la zona horaria
	"""
	return datetime.now(pytz.timezone(tzConvert)).strftime("%z")
 
def offsetInMinutes(tzConvert):
	"""
	Funcion que devuelve los minutos de diferencia de una zona horaria en relacion
	al UTC de la fecha actual.
	Tiene que recibir la zona horaria
	"""
	offsetString=offset(tzConvert)
	hours=int(offsetString[:3])
	minutes=int(offsetString[3:])
	return (hours*60)+minutes
 
def convertToTimezone(dtToConvert,tzToConvert):
	"""
	Funcion que devuelve un datetime en UTC en cualquier zona horaria
	Tiene que recibir la fecha y hora en formato datetime y la zona horaria
	
	"""
	localtimezone = pytz.timezone(tzToConvert)
	localmoment = localtimezone.localize(dtToConvert)
	return localmoment.astimezone(pytz.utc)
 
 
miFecha=datetime.strptime('2016-02-14 14:00:00', "%Y-%m-%d %H:%M:%S")
miFechaEnUTC=convertToUTC(miFecha)
 
print miFecha,"-",convertToTimezone(miFechaEnUTC,'Europe/Madrid')
print miFecha,"-",convertToTimezone(miFechaEnUTC,'Australia/Adelaide')
print miFecha,"-",convertToTimezone(miFechaEnUTC,'America/New_York')
 
print "Offset de Europe/Madrid - ",offset('Europe/Madrid')
print "Offset de Australia/Adelaide - ",offset('Australia/Adelaide')
print "Offset de America/New_York - ",offset('America/New_York')
 
print "Minutes de Europe/Madrid - ",offsetInMinutes('Europe/Madrid')
print "Minutes de Australia/Adelaide - ",offsetInMinutes('Australia/Adelaide')
print "Minutes de America/New_York - ",offsetInMinutes('America/New_York')



Comentarios sobre la versión: Versión 1.1 (1)

Imágen de perfil
kip
04 de Septiembre del 2016
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar la versión: Versión 1.1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3528