Formateo de fechas en Python

En diferentes regiones del mundo, se utilizan diferentes tipos de formatos de fecha y, por esa razón, por lo general, los lenguajes de programación proporcionan una serie de formatos de fecha para que los desarrollen. En Python, se trata mediante el uso de la libertad llamada datetime. Consiste en clases y métodos que se pueden usar para trabajar con datos y valores de tiempo.

Para usarlo, primero importe la biblioteca de fecha y hora por:

import datetime

Podemos tener los siguientes componentes en datetime:

  • la clase de tiempo

    Los valores de tiempo se pueden representar utilizando la clase de tiempo. Los atributos para la clase de tiempo incluyen la hora, el minuto, el segundo y el microsegundo. Un ejemplo de tiempo se da de la siguiente manera:

    Sintaxis:

    time(hour, minute, second, microsecond)
    

    Ejemplo:

    import datetime
      
      
    tm = datetime.time(2, 25, 50, 13)
    print(tm)

    Producción

    02:25:50.000013
    

    Hay rangos para los atributos de tiempo, es decir, para segundos tenemos el rango entre 0 y 59 y para nanosegundos el rango está entre 0 y 999999. Si el rango excede, el compilador muestra un ValueError.

    La instancia de la clase de tiempo consta de tres atributos de instancia, a saber, hora, minuto, segundo y microsegundo. Se utilizan para obtener información específica sobre la hora.

    Ejemplo:

    import datetime
      
      
    tm = datetime.time(1, 50, 20, 133257)
      
    print('Time tm is ',
          tm.hour, ' hours ',
          tm.minute, ' minutes ',
          tm.second, ' seconds and ',
          tm.microsecond, ' microseconds' )

    Producción

    El tiempo tm es 1 hora 50 minutos 20 segundos y 133257 microsegundos

  • la clase de fecha

    Los valores para la fecha del calendario se pueden representar a través de la clase de fecha. La instancia de fecha consta de atributos para el año, el mes y el día.

    Sintaxis:

    date(yyyy, mm, dd)
    

    Ejemplo:

    import datetime
      
      
    date = datetime.date(2018, 5, 12)
    print('Date date is ', date.day,
          ' day of ', date.month,
          ' of the year ', date.year)

    Producción

    Date date is  12  day of  5  of the year  2018
    

    Para obtener los nombres de las fechas de hoy se usa un método llamado today() y para obtener toda la información en un objeto (información de hoy) ctime()se usa el método.

    Ejemplo:

    import datetime
      
      
    tday = datetime.date.today()
    daytoday = tday.ctime()
      
    print("The date today is ", tday)
    print("The date info. is ", daytoday)

    Producción

    The date today is  2020-01-30
    The date info. is  Thu Jan 30 00:00:00 2020
    

Convertir fechas a string

La fecha y la hora son diferentes de las strings y, por lo tanto, muchas veces es importante convertir la fecha y hora en una string. Para esto usamos el strftime()método.

Sintaxis:

time.strftime(format, t)

Parámetros:

  • formato: este es del tipo de string. es decir, las directivas se pueden incrustar en la string de formato.
  • t – la hora a formatear.

Ejemplo:

import datetime
  
  
x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
  
print(x.strftime("%b %d %Y %H:%M:%S"))

Producción

May 12 2018 02:25:50

El mismo ejemplo también se puede escribir en un lugar diferente configurando el print()método.

import datetime
  
  
x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
  
print(x.strftime("%H:%M:%S %b %d %Y"))

Producción

02:25:50 May 12 2018 

%H, %M y %S muestran la hora, los minutos y los segundos respectivamente. %b, %d y %Y muestran 3 caracteres del mes, día y año respectivamente.

Además del ejemplo anterior, la lista de códigos de caracteres de uso frecuente junto con su funcionalidad son:

  • %a: muestra tres caracteres del día de la semana, por ejemplo, miércoles.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%a"))

    Producción

    Sat
    
  • %A: Muestra el nombre del día de la semana, por ejemplo, miércoles.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%A"))

    Producción

    Saturday
    
  • %B: Muestra el mes, por ejemplo, mayo.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%B"))

    Producción

    May
    
  • %w: Muestra el día de la semana como un número, del 0 al 6, siendo el domingo 0.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%w"))

    Producción

    6
    
  • %m: muestra el mes como un número, del 01 al 12.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%m"))

    Producción

    5
    
  • %p: define AM/PM para la hora.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%p"))

    Producción

    PM
    
  • %y: Muestra el año en formato de dos dígitos, es decir, «20» en lugar de «2020».

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("% y"))

    Producción

    18
    
  • %f: Muestra microsegundos de 000000 a 999999.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("% f"))

    Producción

    000013
    
  • %j: Muestra el número de día del año, del 001 al 366.

    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%f"))

    Producción

    132
    

Conversión de string a la fecha

La conversión de una string a la fecha muchas veces es necesaria cuando se trabaja con conjuntos de datos importados de un csv o cuando tomamos entradas de formularios de sitios web. Para hacer esto, Python proporciona un método llamado strptime() .

Sintaxis:

datetime.strptime(string, format)

Parámetros:

  • string: la string de entrada.
  • formato: este es del tipo de string. es decir, las directivas se pueden incrustar en la string de formato.

Ejemplo:

from datetime import datetime
  
  
print(datetime.strptime('5/5/2019',
                        '%d/%m/%Y'))

Producción

2019-05-05 00:00:00

Publicación traducida automáticamente

Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *