He buscado una solución en StackExchange pero nada hace 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?
Respuestas:
Pruebe este código que usa datetime.utcnow () :
Para sus propósitos, cuando necesite calcular la cantidad de tiempo transcurrido entre dos fechas, todo lo que necesita es restar las fechas de finalización y de inicio. El resultado de tal sustracción es un objeto timedelta.
De los documentos de Python:
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. Además, la instancia timedelta tiene el método total_seconds () que:
fuente
En la forma más cercana a su original:
Si necesita saber la cantidad de segundos de 1970-01-01 en lugar de un Python nativo
datetime
, use esto en su lugar:Python tiene convenciones de nomenclatura que están en desacuerdo con lo que podría estar acostumbrado en Javascript, consulte PEP 8 . Además, una función que simplemente devuelve el resultado de otra función es bastante tonta; si solo se trata de hacerla más accesible, puede crear otro nombre para una función simplemente asignándola. El primer ejemplo anterior podría reemplazarse por:
fuente
tzinfo
objeto, ni siquiera para UTC.Solo biblioteca estándar simple, para Python moderno. Da fecha y hora con reconocimiento de zona horaria, a diferencia de
datetime.utcnow()
.datetimes
sin zonas horarias hay accidentes que esperan suceder.fuente
fuente
Desde datetime.datetime ya puede exportar a marcas de tiempo con el método strftime. Siguiendo su ejemplo de función:
Si desea microsegundos, debe cambiar la cadena de exportación y convertir para flotar como:
return float(now.strftime("%s.%f"))
fuente
time.time()
. También puede usar time.mktime (now.timetuple ()) para convertir directamente a int. De todos modos, para este simple casotime.time()
también es una opción válida. Lo que me parece extraño es ir por timedelta para encontrar los segundos.strftime("%s")
depende de la plataforma y no funciona en Windows. (Al menos no es así para mí en Windows 10).Zona horaria consciente con cero dependencias externas:
fuente
En Python 3 usando la expresión lambda, pruebe;
y llamar a la función normalmente;
fuente