¿Cómo convertir DateTime a marca de tiempo UNIX en Python?

La marca de tiempo de Unix es un único entero con signo que crece en uno cada segundo, lo que permite que las computadoras almacenen y manipulen sistemas de fechas convencionales. Luego, el software se traduce a un formato legible por humanos. La marca de tiempo de Unix es el número de segundos calculados desde el 1 de enero de 1970. En este artículo, veremos cómo convertir DateTime a la marca de tiempo de Unix.

DateTime a la marca de tiempo de Unix

Para convertir Python DateTime a la marca de tiempo de Unix, importamos un módulo llamado datetime and time en este ejemplo, y la variable date_time se declaró y asignó datetime. hora/fecha (2021, 7, 26, 21, 20). El año es 2021, el mes es 7, el día es 26, la hora es 21 y el minuto es 20.

Código:

Python3

# importing datetime module
import datetime
import time
 
# assigned regular string date
date_time = datetime.datetime(2021, 7, 26, 21, 20)
 
# print regular python date&time
print("date_time =>",date_time)
 
# displaying unix timestamp after conversion
print("unix_timestamp => ",
      (time.mktime(date_time.timetuple())))

Producción:

date_time => 2021-07-26 21:20:00
unix_timestamp =>  1627314600.0

Explicación:

Las clases de manipulación de fecha y hora son proporcionadas por el módulo de fecha y hora. La función inversa de la hora local es mktime(). Acepta una estructura de tiempo o una tupla completa de 9 como argumento y devuelve un número de coma flotante para que sea compatible con el tiempo(). También se utiliza para convertir una fecha y hora en una marca de tiempo de Unix.

El método timetuple() de los objetos datetime.date devuelve una hora object.struct time. El objeto de tiempo de estructura es una tupla con nombre que se puede recuperar mediante un índice o por nombre. Los campos de año, mes y día de la tupla con nombre devuelta por la función timetuple() se establecerán de acuerdo con el objeto de fecha, mientras que los campos de hora, minutos y segundos se establecerán en cero.

Fecha y hora a la marca de tiempo de Unix con 13 dígitos

Para obtener la hora actual, use datetime.now(). La función timetuple() de la clase datetime devuelve las propiedades de datetime como una tupla con nombre. La marca de tiempo con 13 dígitos debe multiplicarse por 1000.

Código:

Python3

import time
import datetime
 
presentDate = datetime.datetime.now()
unix_timestamp = datetime.datetime.timestamp(presentDate)*1000
print(unix_timestamp)

Producción:

1628497724509.293

DateTime a la marca de tiempo de Unix en la zona horaria UTC

El módulo de calendario proporciona útiles funciones relacionadas con el calendario. La función utc.now devuelve la hora actual en la zona horaria UTC. En el módulo de tiempo, la función timegm devuelve una marca de tiempo de Unix. La función timetuple() de la clase datetime devuelve las propiedades de datetime como una tupla con nombre. Para obtener la marca de tiempo de Unix, use print (UTC).

Código:

Python3

import calendar
import datetime
 
date = datetime.datetime.utcnow()
utc_time = calendar.timegm(date.utctimetuple())
print(utc_time)

Producción:

1628497783

DateTime a la marca de tiempo de Unix en milisegundos

La función datetime.now() se utiliza para obtener la hora actual. El método mktime es un método de tiempo que es la función inversa de la hora local; se utiliza para convertir fecha y hora en milisegundos de marca de tiempo de Unix. La función timetuple() de la clase datetime devuelve las propiedades de datetime como una tupla con nombre. Para obtener el tiempo en milisegundos, multiplícalo por 1000.

Código:

Python3

import datetime
import time
 
ms = datetime.datetime.now()
print(time.mktime(ms.timetuple()) * 1000)

Producción:

1628497823000.0

Datetime.date a la marca de tiempo de Unix

time.date() es una función que solo acepta fechas. En este caso, 2021 es el año, 8 es el mes y 6 es el día. mktime() es un método de tiempo que es la función inversa de la hora local; se utiliza para convertir fechas a marcas de tiempo de Unix.

Código:

Python3

import datetime
import time
 
my_datetime = datetime.date(2021, 8, 6)
print("Unix_Time: ",
      (time.mktime(my_datetime.timetuple())))

Producción:

Unix_Time:  1628188200.0

String de fecha y hora a la marca de tiempo de Unix

En este caso, la fecha y la hora se proporcionan en formato de string. Aquí, 8 denota el mes, 6 denota el día, 2021 denota el año, 05 denota la hora, 54 denota el minuto y 8 denota el segundo. strptime() es un método de módulo de fecha y hora que se utiliza para convertir strings en objetos de fecha y hora. La función timestamp() devuelve la hora actual en la ubicación actual.

Código:

Python3

import datetime
 
date_example = "8/6/2021, 05:54:8"
date_format = datetime.datetime.strptime(date_example,
                                         "%m/%d/%Y, %H:%M:%S")
unix_time = datetime.datetime.timestamp(date_format)
print(unix_time)

Producción:

1628209448.0

Marca de tiempo de Unix para Python DateTime

El módulo DateTime en Python se usa para tratar problemas relacionados con la fecha y la hora en Python. El método fromtimestamp() es una de las funciones incluidas en este módulo. La función fromtimestamp() de la clase de fecha calcula y devuelve la fecha correspondiente a una marca de tiempo específica. El rango de marca de tiempo permitido se extiende desde 1970 hasta 2038. Si hay segundos bisiestos en la marca de tiempo, la función fromtimestamp() los ignora.

Para empezar, importamos la clase de fecha y hora del módulo de fecha y hora. A continuación, el objeto de valor de UNIX se almacena en una variable. Luego usamos el método datetime.fromtimestamp() para recuperar la hora y la fecha.  

La función strftime() es otra función en el módulo de fecha y hora. Esta función ayuda en la devolución de un DateTime en un formato particular. Esta función se utiliza para convertir objetos de fecha y hora en representaciones de strings. Los códigos de formato en el código anterior son %d, %m, %Y, %H, %M y %S, que indican días, meses, años, horas, minutos y segundos, respectivamente.

Código:

Python3

# importing datetime module
import datetime
 
# assigned unix time
unix_time = 1627334400
 
date_time = datetime.datetime.fromtimestamp(unix_time)
 
# print unix time stamp
print("Unix_Time =>",unix_time)
 
# displaying date and time in a regular
# string format
print("Date & Time =>" ,
      date_time.strftime('%Y-%m-%d %H:%M:%S'))

Producción:

Unix_Time => 1627334400
Date & Time => 2021-07-27 02:50:00

Publicación traducida automáticamente

Artículo escrito por priyavermaa1198 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 *