convert python datetime

convert - python datetime time to seconds



¿Cómo obtener tiempo UTC en Python? (3)

Desde datetime.datetime, usted ya puede exportar a timestamps con method strftime. Siguiendo tu ejemplo de función:

import datetime def UtcNow(): now = datetime.datetime.utcnow() return int(now.strftime("%s"))

Si quiere microsegundos, debe cambiar la cadena de exportación y el molde para flotar como: return float(now.strftime("%s.%f"))

He buscado mucho en StackExchange para encontrar una solución, pero nada hace exactamente lo que necesito. En JavaScript, estoy usando lo siguiente para calcular la hora UTC desde el 1 de enero de 1970:

function UtcNow() { var now = new Date(); var utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds()); return utc; }

¿Cuál sería el código Python equivalente?


En la forma más cercana a su original:

import datetime def UtcNow(): now = datetime.datetime.utcnow() return now

Si necesita saber la cantidad de segundos desde 1970-01-01 en lugar de una datetime Python nativa, use esto en su lugar:

return (now - datetime.datetime(1970, 1, 1)).total_seconds()

Python tiene convenciones de nombres que están en desacuerdo con lo que podría estar acostumbrado en Javascript, vea PEP 8 . Además, una función que simplemente devuelve el resultado de otra función es bastante tonta; si solo se trata de hacer que sea más accesible, puede crear otro nombre para una función simplemente asignándolo. El primer ejemplo anterior podría reemplazarse por:

utc_now = datetime.datetime.utcnow


Pruebe este código que usa datetime.utcnow() :

from datetime import datetime datetime.utcnow()

Para sus propósitos cuando necesita calcular una cantidad de tiempo entre dos fechas, todo lo que necesita es restar fechas de finalización e inicio. Los resultados de tal sustracción son un objeto timedelta.

De los documentos de python:

class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])

Y esto significa que de forma predeterminada puede obtener cualquiera de los campos mencionados en su definición: días, segundos, microsegundos, milisegundos, minutos, horas, semanas. También la instancia timedelta tiene el método total_seconds () que:

Devuelve el número total de segundos contenidos en la duración. Equivalente a (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 * 6) / 10 * 6 calculado con división verdadera habilitada.