Obtener fecha y hora actual en python (datetime - time)

Fecha y hora en python
Fecha y hora en python

¿Como puedo saber la fecha y hora actual en python? ¿Cuál es la función o módulo que debo usar para obtener la hora actual en el lenguaje de programación python?

Podemos utilizar el módulo time (de bajo nivel) que proporciona diversas funciones relacionadas con el tiempo, sin embargo no todas las funciones están disponibles en todas las plataformas. Por lo tanto es necesario utilizar el módulo datetime que proporciona clases (ver clases y objetos en python) para la manipulación de fechas y horas simples y complejas.

Índice()

    Obtener hora actual en python con el modulo time

    Formato: time.strftime(formato)

    Ejemplo:

    >>>import time
    >>>time.strftime("%H:%M:%S") #Formato de 24 horas
    20:08:40

    >>>import time
    >>>time.strftime("%I:%M:%S") #Formato de 12 horas
    08:08:40

    Imprimir la fecha actual:

    Formato: dd/mm/yyyy

    >>>import time
    >>>print (time.strftime("%d/%m/%y"))
    22/05/14

    Obtener fecha y hora local en python

    # -*- coding: utf-8 -*-
    #!/usr/bin/python

    import time

    ahora = time.strftime("%c")
    ## representacion de fecha y hora
    print "Fecha y hora " + time.strftime("%c")

    ## representacion del tiempo
    print "Fecha "  + time.strftime("%x")

    ## representacion de la hora
    print "Hora " + time.strftime("%X")

    ## Muestra fecha y hora actual a partir de la variable 
    print ("Fecha y hora de la variable %s"  % ahora )

    Salida:

    Fecha y hora 05/22/14 20:35:11
    Fecha 05/22/14
    Hora 20:35:11
    Fecha y hora de la variable 05/22/14 20:35:11

    Los distintos formatos

    Las siguientes directivas se pueden utilizar en el formato de cadena:

    %a - Nombre del día de la semana
    %A - Nombre del día completo
    %b - Nombre abreviado del mes
    %B - Nombre completo del mes
    %c - Fecha y hora actual
    %d - Día del mes
    %H - Hora (formato 24 horas)
    %I - Hora (formato 12 horas)
    %j - Día del año
    %m - Mes en número
    %M- Minutos
    %p - Equivalente de AM o PM
    %S - Segundos
    %U - Semana del año (domingo como primer día de la semana)
    %w - Día de la semana
    %W - Semana del año (lunes como primer día de la semana)
    %x - Fecha actual
    %X - Hora actual
    %y - Número de año (14)
    %Y - Numero de año entero (2014)
    %Z - Zona horaria

    Obtener la fecha y hora actual en Python usando el módulo datetime

    Formato:

    >>>ahora = datetime.datetime.now()
    >>>ahora.hour
    >>>ahora.minute
    >>>ahora.year
    >>>ahora.day
    >>>ahora.month

    Ejemplos:

    # -*- coding: utf-8 -*-
    #!/usr/bin/python

    import datetime

    x = datetime.datetime.now()

    print ("Fecha y hora = %s" % x)

    print ("Fecha y hora en formato ISO = %s" % x.isoformat() )

    print (u"Año = %s" %x.year)

    print ("Mes = %s" %x.month)

    print ("Dia =  %s" %x.day)

    print ("Formato dd/mm/yyyy =  %s/%s/%s" % (x.day, x.month, x.year) )

    print ("Hora = %s" %x.hour)

    print ("Minutos = %s" %x.minute)

    print ("Segundos =  %s" %x.second)

    print ("Formato hh:mm:ss = %s:%s:%s" % (x.hour, x.month, x.second) )

    Salida:

    Fecha y hora = 2014-05-23 18:05:04.597000
    Fecha y hora en formato ISO = 2014-05-23T18:05:04.597000
    Año = 2014
    Mes = 5
    Dia = 23
    Formato dd/mm/yyyy = 23/5/2014
    Hora = 18
    Minutos = 5
    Segundos = 4
    Formato hh:mm:ss = 18:5:4

    Bueno, esto es todo por ahora sobre estos módulos, espero le sea de utilidad. Como siempre; cualquier duda o sugerencia dejen el comentario debajo de esta entrada. Saludos, Diego.

    1. luisberto dice:

      POR FABOR COMO PODRIA RESOLVER ESTE PROBLEMA(ESCRIBO NUMEROS Y Q SEA EL RESULTADO TEXTOS COMO <62=SENCENTA Y UNO>)

      1. Anónimo dice:

        Aprende a escribir primero por favor. gracias

      2. PythonBaby dice:

        ¿Y tiene que escribirlo con faltas de ortografía a propósito?... ese sí es un desafío...

    2. Unknown dice:

      Muy buenas los respuestas

    3. Unknown dice:

      como consigo el alto de una cadena de texto en reportlab y python

      1. Unknown dice:

        Carlos, ¿a que te referís con "alto de una cadena"?. Saludos

      2. Anónimo dice:

        No sera el largo de la cadena?
        me parece que es asi:

        cadena = "perro"
        print len(cadena)
        >>> 5

    4. Unknown dice:

      Gracias por la explicación, es muy práctica y útil. Saludos

      1. PythonDiario dice:

        Me alegro Robertino que te sea útil. Saludos

    5. Unknown dice:

      Gracias Diego por tomarte tu tiempo para compartir tus conocimientos!!

      1. PythonDiario dice:

        Me alegro Cesar te sea de utilidad, gracias a ti por visitar el blog. Saludos

    6. Unknown dice:

      Hola buen día, me ha sido de gran ayuda su información, de antemano muchas gracias por ello... pero ahora tengo una duda.. ¿como podría obtener la fecha de un día antes? en mi programa mando llamar unos archivos que solo cambia la fecha, pero ahora requiero que recupere los archivos de un dia antes; alguna idea???

      1. Leydi González S dice:

        obtiene la fecha del día de hoy y le restas 1 a día

    7. Unknown dice:

      Hola alguien me podría decir como traducir mi salida de la fecha, este es mi código: https://www.dropbox.com/s/te6a0m4dqjztysb/codigo.PNG?dl=0 y esta es mi salida: https://www.dropbox.com/s/b7u8xt1l15gc87y/salida.PNG?dl=0, muchas gracias, saludos

      1. PythonDiario dice:

        Hola Emmanuel, fijate con el siguiente código (asignacion locale español):

        # -*- coding: utf-8 -*-

        from datetime import *
        import locale

        # Establecemos el locale de nuestro sistema
        locale.setlocale(locale.LC_ALL, "")

        fecha = date.today()
        impresionf = fecha.strftime("%A %B %d %Y")

        print impresionf

        #Saludos, espero te sea de ayuda

    8. Noemy Navarro dice:

      Hola, necesito saber como guardar la fecha con la funcion datetime, pero que no me este guardando la hora actual. Estoy simulando un parque y necesito guadar la hora de salida y entrada de cada cliente. Ya se como se utiliza datetime. Pero cuando intento guardar la hora, queda guardada pero se actualiza el la variable guardada y no quiero que se este aculizando.

    9. Noemy Navarro dice:

      Hola, necesito saber como guardar la fecha con la funcion datetime, pero que no me este guardando la hora actual. Estoy simulando un parque y necesito guadar la hora de salida y entrada de cada cliente. Ya se como se utiliza datetime. Pero cuando intento guardar la hora, queda guardada pero se actualiza el la variable guardada y no quiero que se este aculizando.

    10. El Master - Jhon Charlie dice:

      Hola, buen aporte, el trabajo con fechas y horas es muy importante para cualquier programador, gracias por el aporte.

      1. PythonDiario dice:

        Gracias por visitar el y participar en blog. Saludos

    11. Nolus dice:

      Gracias por la ayuda de esta libreria importante, es interesante el paradigma de python respecto a otros lenguajes.

      1. PythonDiario dice:

        Gracias Israel por visitar el blog. Saludos

    12. Anónimo dice:

      para comenzar con python estoy intentando hacer un despertador simple. gracias por compartir.

      1. PythonDiario dice:

        Hola, gracias a ti por visitar el blog. Saludos

    13. Cristian J. Azulay dice:

      Excelente el blog Diego. Como se puede establecer fechas para luego hacer operaciones con ellas. Todos los ejemplos que encuentro siempre usan el metodo now() para obtener la fecha y hora actual. Estoy queriendo restar dos fechas (mas que fechas son horas) pero que las mismas las ingrese el usuario por teclado. Como podría hacerlo?

      1. PythonDiario dice:

        Hola cjadesarrollador, acá te dejo un ejemplo de como restar una fecha. Vas a tener que ver bien como recibes y conviertes el dato ingresado por el usuario:

        from datetime import datetime

        birthday = datetime(1988, 2, 19, 12, 0, 0)
        diff = datetime.now() - birthday
        print diff
        # 8954 days, 7:03:45.765329

      2. PythonDiario dice:

        Aquí tienes otro ejemplo restando horas, devuelve el tiempo en minutos:

        import datetime as dt
        start="09:35:23"
        end="10:23:00"
        start_dt = dt.datetime.strptime(start, '%H:%M:%S')
        end_dt = dt.datetime.strptime(end, '%H:%M:%S')
        diff = (end_dt - start_dt)
        diff.seconds/60

    14. Unknown dice:

      Como puedo poner widget para manejar las fechas en un ModelForm

    15. Unknown dice:

      buenos dias, necesito saber como acceder en python a los datos de un proceso... por ejemplo... copio un archivo, cuando voy a pegarlo en un directorio, saber el tamaño total de la copia... espero me puedan ayudar con eso... SALUDOS

      1. PythonDiario dice:

        Hola como estas!!! gracias por visitar el blgo!!!
        Podrías modificar la siguiente función. Lo que hace es darte el tamaño en bytes del directorio acutal. Saludos

        #!/usr/bin/python
        # -*- coding: utf-8 -*-

        import os
        def get_size(start_path = '.'):
        ----total_size = 0
        ----for dirpath, dirnames, filenames in os.walk(start_path):
        --------for f in filenames:
        ------------fp = os.path.join(dirpath, f)
        ------------total_size += os.path.getsize(fp)
        ----return total_size

        print get_size()

    16. Unknown dice:

      Hola maestro como haría para darle un rango de tiempo por ejemplo quiero hacer funcionar un motor DC a tal hora en determinado tiempo cuando pase por ejemplo 10 segundos se apague. Muchas gracias de antemano

      1. PythonDiario dice:

        Hola Javier, gracias por visitar el blog. Me imagino puedes correr una tarea programada que a esa hora corra tu proceso y luego con un time.sleep(10) aguantes 10 segundos y se corta el proceso!!!!
        Saludos

    17. Anónimo dice:

      Hola! de verdad es de mucha utilidad tu blog, pero queria saber si lo puedo aplicar en este ejercicio:
      Escriba un programa que devuelva la edad del usuario (en años y meses), a partir de su fecha de nacimiento, y el dia de su nacimiento.
      Gracias!

      1. PythonDiario dice:

        Hola, gracias por visitar el blog!!!
        Has podido hacer algo? en que parte te trancas?

        Saludos

      2. Anónimo dice:

        Hola! hasta el momento llevo esto:
        import datetime

        def fecha_nacimiento():
        print "Introduzca su fecha de nacimiento: "
        dia = int( input( "t-Día: " ) )
        mes = int( input( "t-Mes: " ) )
        anio= int( input( "t-Año: " ) )
        if ( type( dia ) != type( 1 ) ) or ( type( mes ) != type( 1 ) ) or ( type( anio ) != type( 1 ) ) or ( dia < 1 ) or
        ( dia > 31) or ( mes < 1 ) or ( mes > 12) or( anio < 1000):
        print "Error, fecha no valida"
        return
        fechanac = datetime.date( ano, mes, dia )
        return fechanac

        def anios_transcurridos():
        if mes > d.month:
        print "Su edad actual es: ", cal, " años"
        elif dia > d.day:
        print "su edad actual es: ", cal, "años"
        elif mes <= d.month:
        print "Su edad actal es: ", calanio, "años"
        elif dia <= d.day:
        print "Su edad actual es: ", calanio, "años"

        Pero no sé si esta bien. Por otra parte sigo confundida en cómo sacar los meses

    18. Anónimo dice:

      Primero lo programe así, aqui me da la edad en años pero no sé cómo integrar los meses

      #!/usr/bin/python
      #_*_coding:utf-8_*_

      import datetime
      from datetime import date

      d= date.today()

      hoy = datetime.date.today()

      print (hoy.strftime ("%d/%m/%Y"))
      anio=int (raw_input("Ingrese el año de nacimiento: "))
      mes= int (raw_input ("Ingrese el mes de nacimiento: "))
      dia= int (raw_input ("Ingrese el día de nacimiento: "))

      calanio = (d.year) - (anio)
      cal= calanio -1

      if mes > d.month:
      print "Su edad actual es: ", cal, " años"
      elif dia > d.day:
      print "su edad actual es: ", cal, "años"
      elif mes <= d.month:
      print "Su edad actal es: ", calanio, "años"
      elif dia <= d.day:
      print "Su edad actual es: ", calanio, "años"

      1. PythonDiario dice:

        Hola, puedes buscar en google: "calculate years old in python"
        Los primeros resultados en StackOverflow pueden darte la solución!!!

        Saludos

      2. Anónimo dice:

        Gracias !!.. ya logré el programa

      3. PythonDiario dice:

        Excelente!!!!

        Saludos

    19. Jorge Felix dice:

      Amigo, buen día. Tengo dudas de como darle fecha y hora a un archivo que estaré creando, una foto que tome el valor consecutivo mas la fecha y hora en que fue tomada, ejemplo Foto1-30-06-17 algo así

    20. Unknown dice:

      hola necesito ayuda urgente !!! para hoy
      necesito que python me entre el nombre del mes indicando la fecha// ademas necesito que me entregue la diferencia de años entre dos fecha// tambien necesito que me digan como convertir a string una fecha !!!! porfaaaaaa es para hoyyyyy

      1. Salvador Ortiz dice:

        Jajajajaja "es para hoy" x'D

    21. Anónimo dice:

      como se tendría que escribir para hacer un programa que te diga la fecha y hora y a su ves te diga si es buenos días,tardes,noches?

    22. Yosjediknight dice:

      Hola. Cuando Phyton expresa una fecha en literales, lo hace en inglés, (p.e. Monday, August, etc.) Hay manera de que devuelva ésto en español o hay que programar la traducción. - Gracias

    23. Unknown dice:

      Buen dia, necesito lograr que solo muestre el año actual, es para calcular la edad, en una tarea que nos dejaron.
      como lo logro, pues debo interactuar con esta función
      edad = 2020-agno-1
      la idea es que 2020 sea siempre el año actual sin tener que escribirlo o cambiarlo cada año
      gracias

    24. Jordan dice:

      Como agregar la fecha actual cuando se trabaja con elementos xpath?

      1. dcaraballo dice:

        Hola, gracias por tu comentario, no entiendo tu pregunta.
        Puedes detallar un poco más el problema?
        Saludos

    25. nico dice:

      y si quiero devolver el mes, pero en letras, ¿cómo sería?

    Deja una respuesta

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

    Subir

    Te has suscrito correctamente al boletín

    Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

    Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.