Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:fechas

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:python:fechas [2020/11/13 17:12] – [Zona horaria] tempwininformatica:programacion:python:fechas [2021/11/04 17:04] (actual) – [Intervalos] tempwin
Línea 3: Línea 3:
 <code python> <code python>
 import datetime as dt import datetime as dt
 +# from datetime import datetime
 </code> </code>
  
Línea 26: Línea 27:
 <code python> <code python>
 d = dt.date(2020, 12, 31) d = dt.date(2020, 12, 31)
 +</code>
 +
 +Utilizando el método ''strptime()'' (convierte un string a un objeto de fecha):
 +
 +<code python>
 +d = datetime.strptime("01/01/2020", "%Y-%m-%d")
 </code> </code>
  
Línea 31: Línea 38:
  
 <code python> <code python>
-d = dt.datetime(2020, 12, 31, 12, 59, 59)+from datetime import datetime 
 +d = datetime(2020, 12, 31, 12, 59, 59)
 </code> </code>
  
-Para poder ver la fecha como una cadenad de caracteres:+Para poder ver la fecha como una cadena de caracteres:
  
 <code python> <code python>
Línea 41: Línea 49:
 # Resultado: # Resultado:
 # 2020-12-31 12:59:59 # 2020-12-31 12:59:59
 +</code>
 +
 +Otra forma de formatear una fecha es utilizando el método ''strftime()'', que convertirá el objeto en un string:
 +
 +<code python>
 +fecha.strftime("%Y-%m-%d %H:%M:%S")
 +
 +# Resultado:
 +# '2021-11-04 16:53:36'
 </code> </code>
  
Línea 48: Línea 65:
  
 <code python> <code python>
 +from datetime import datetime
 import pytz import pytz
  
Línea 53: Línea 71:
 for tz in pytz.all_timezones: for tz in pytz.all_timezones:
     print(tz)     print(tz)
 +
 +# Fecha y hora actual en la zona horaria actual
 +now = datetime.now()
 +
 +print(now)
 +
 +# Resultado
 +# 2020-11-13 17:16:04.477517
  
 # Creamos una hora en UTC (aunque no tiene información sobre zona horaria) # Creamos una hora en UTC (aunque no tiene información sobre zona horaria)
Línea 61: Línea 87:
  
 print(utcnow) print(utcnow)
 +
 +# Resultado
 +# 2020-11-13 16:16:04.477517+00:00
 </code> </code>
 +
 +<WRAP center round tip 60%>
 +Por regla general, se recomienda guardar las fechas en UTC y hacer posteriormente las conversiones a la zona horaria deseada
 +</WRAP>
 +
  
 Para convertir zonas horarias: Para convertir zonas horarias:
Línea 176: Línea 210:
 print(d1.time() > d3.time()) # False print(d1.time() > d3.time()) # False
 </code> </code>
 +
 +===== Intervalos =====
 +
 +Los objetos ''timedelta'' representan duraciones de tiempo, lo cual permite realizar operaciones aritméticas con las fechas.
 +
 +<code python>
 +from datetime import timedelta
 +
 +nuevo_dia = cualquier_dia + timedelta(days=1)
 +
 +# añade un día a ''cualquier_dia''
 +</code>
 +
 +Podríamos hacer comparaciones:
 +
 +<code python>
 +cualquier_dia > nuevo_dia
 +
 +# Resultado:
 +# False
 +</code>
 +
 +===== Tiempos =====
 +
 +''time.time()'' representa una hora en el día, independientemente del día del que se trate.
 +
 +Un uso típico es ver la duración de la ejecución de un programa.
 +
 +<code python>
 +from time import time
 +
 +t0 = time()
 +
 +for x in range(100000):
 +    a = x
 +
 +t1 = time()    
 +
 +t1 - t0
 +
 +# Resultado:
 +# 0.007186412811279297
 +</code>
 +
informatica/programacion/python/fechas.1605283934.txt.gz · Última modificación: por tempwin