semana restar poner obtener ingresar horas hora formato fechas fecha comparar como calendario python datetime time

restar - Como obtener la hora actual en Python



obtener el dia de la semana en python (30)

¿Cómo obtengo la hora actual en Python?

El modulo de time

El módulo de time proporciona funciones que nos indican el tiempo en "segundos desde la época", así como otras utilidades.

import time

Unix Epoch Time

Este es el formato en el que debe obtener las marcas de tiempo para guardar en bases de datos. Es un número de punto flotante simple que se puede convertir en un entero. También es bueno para la aritmética en segundos, ya que representa el número de segundos desde el 1 de enero de 1970 a las 00:00:00, y es la luz de la memoria en relación con las otras representaciones del tiempo que veremos a continuación:

>>> time.time() 1424233311.771502

Esta marca de tiempo no tiene en cuenta los saltos de segundos, por lo que no es lineal: los segundos de los saltos se ignoran. Entonces, si bien no es equivalente al estándar UTC internacional, está cerca, y por lo tanto es bastante bueno para la mayoría de los casos de mantenimiento de registros.

Esto no es ideal para la programación humana, sin embargo. Si tiene un evento futuro que desea que tenga lugar en un momento determinado, querrá almacenar ese tiempo con una cadena que se puede analizar en un objeto de fecha y hora o un objeto de fecha y hora serializado (esto se describirá más adelante).

time.ctime

También puede representar la hora actual de la manera que prefiera su sistema operativo (lo que significa que puede cambiar cuando cambia las preferencias de su sistema, así que no confíe en que esto sea estándar en todos los sistemas, como he visto otros que esperan) . Esto suele ser fácil de usar, pero normalmente no genera cadenas que se puedan clasificar cronológicamente:

>>> time.ctime() ''Tue Feb 17 23:21:56 2015''

También puede hidratar las marcas de tiempo en forma legible por humanos con ctime :

>>> time.ctime(1424233311.771502) ''Tue Feb 17 23:21:51 2015''

Esta conversión tampoco es buena para el mantenimiento de registros (excepto en el texto que solo serán analizados por humanos, y con el reconocimiento óptico de caracteres mejorado y la inteligencia artificial, creo que el número de estos casos disminuirá).

módulo de datetime

El módulo datetime también es bastante útil aquí:

>>> import datetime

datetime.datetime.now

El datetime.now es un método de clase que devuelve la hora actual. Utiliza time.localtime sin la información de la zona horaria (si no se proporciona, de lo contrario, consulte la zona horaria que se indica a continuación). Tiene una representación (que le permitiría recrear un objeto equivalente) que se hizo eco en la cáscara, pero cuando se imprimió (o fue forzada a una str ), está en formato legible por el hombre (y casi ISO), y la clasificación lexicográfica es equivalente a El orden cronológico:

>>> datetime.datetime.now() datetime.datetime(2015, 2, 17, 23, 43, 49, 94252) >>> print(datetime.datetime.now()) 2015-02-17 23:43:51.782461

el utcnow de utcnow

Puede obtener un objeto de fecha y hora en hora UTC, un estándar global, al hacer esto:

>>> datetime.datetime.utcnow() datetime.datetime(2015, 2, 18, 4, 53, 28, 394163) >>> print(datetime.datetime.utcnow()) 2015-02-18 04:53:31.783988

UTC es un estándar de tiempo que es casi equivalente a la zona horaria GMT. (Mientras GMT y UTC no cambian para el horario de verano, sus usuarios pueden cambiar a otras zonas horarias, como British Summer Time, durante el verano).

Fecha hora hora consciente

Sin embargo, ninguno de los objetos de fecha y hora que hemos creado hasta ahora se puede convertir fácilmente a varias zonas horarias. Podemos resolver ese problema con el módulo pytz :

>>> import pytz >>> then = datetime.datetime.now(pytz.utc) >>> then datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

De manera equivalente, en Python 3 tenemos la clase de timezone con una instancia de utc timezone adjunta, lo que también hace que el objeto sea consciente de la zona horaria (pero para convertir a otra zona horaria sin el práctico módulo pytz se deja como ejercicio para el lector):

>>> datetime.datetime.now(datetime.timezone.utc) datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

Y vemos que podemos convertir fácilmente a zonas horarias desde el objeto utc original.

>>> print(then) 2015-02-18 04:55:58.753949+00:00 >>> print(then.astimezone(pytz.timezone(''US/Eastern''))) 2015-02-17 23:55:58.753949-05:00

También puede hacer que un objeto de fecha y hora ingenuo sea consciente con el método de localize zona horaria de pytz , o reemplazando el atributo tzinfo (con replace , esto se hace a ciegas), pero estos son más recursos que las mejores prácticas:

>>> pytz.utc.localize(datetime.datetime.utcnow()) datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>) >>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc) datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

El módulo pytz nos permite hacer que nuestros objetos de datetime y datetime sean conscientes de la zona horaria y convertir los tiempos a los cientos de zonas horarias disponibles en el módulo pytz .

Aparentemente, se podría serializar este objeto para el tiempo UTC y almacenarlo en una base de datos, pero requeriría mucha más memoria y sería más propenso a errores que simplemente almacenar el tiempo de Unix Epoch, que demostré primero.

Las otras formas de ver los tiempos son mucho más propensas a errores, especialmente cuando se trata de datos que pueden provenir de diferentes zonas horarias. Desea que no haya confusión en cuanto a la zona horaria a la que se destinó una cadena o un objeto de fecha y hora serializados.

Si está mostrando la hora con Python para el usuario, ctime funciona bien, no en una tabla (normalmente no se clasifica bien), pero quizás en un reloj. Sin embargo, personalmente recomiendo, cuando se trata de tiempo en Python, ya sea utilizando el tiempo Unix, o un objeto de datetime UTC consciente de la zona horaria.

¿Cuál es el módulo / método utilizado para obtener la hora actual?


¿Por qué no preguntar al Observatorio Naval de los EE. UU. , El cronometrador oficial de la Armada de los Estados Unidos?

import requests from lxml import html page = requests.get(''http://tycho.usno.navy.mil/cgi-bin/timer.pl'') tree = html.fromstring(page.content) print(tree.xpath(''//html//body//h3//pre/text()'')[1])

Si vives en el área de DC (como yo), la latencia podría no ser tan mala ...


De forma predeterminada, la función now() devuelve la salida en el YYYY-MM-DD HH:MM:SS:MS . Utilice el siguiente script de muestra para obtener la fecha y hora actual en un script de Python e imprimir los resultados en la pantalla. Cree el archivo getDateTime1.py con el contenido a continuación.

import datetime currentDT = datetime.datetime.now() print (str(currentDT))

La salida se ve a continuación:

2018-03-01 17:03:46.759624


Esta pregunta no necesita una nueva respuesta por el simple hecho de que ... un módulo / juguete nuevo y brillante, sin embargo, es suficiente justificación. Esa es la biblioteca del Péndulo , que parece hacer el tipo de cosas que intentó la flecha, excepto sin las fallas e insectos inherentes que acosan a la flecha.

Por ejemplo, la respuesta a la pregunta original:

>>> import pendulum >>> print(pendulum.now()) 2018-08-14T05:29:28.315802+10:00 >>> print(pendulum.utcnow()) 2018-08-13T19:29:35.051023+00:00

Hay muchos estándares que requieren direccionamiento, incluidos múltiples RFC e ISO, para preocuparse. Alguna vez mezclarlos; No se preocupe, eche un vistazo a dir(pendulum.constants) Sin embargo, hay un poco más que los formatos RFC e ISO.

Cuando decimos local, ¿a qué nos referimos? Bueno me refiero a

>>> print(pendulum.now().timezone_name) Australia/Melbourne >>>

Presumiblemente la mayoría del resto de ustedes quiere decir en otro lugar.

Y sigue así. Larga historia corta: Pendulum intenta hacer para la fecha y hora lo que hicieron las solicitudes para HTTP. Vale la pena considerar, especialmente por su facilidad de uso y extensa documentación.


Esto es lo que terminé yendo con:

>>>from time import strftime >>>strftime("%m/%d/%Y %H:%M") 01/09/2015 13:11

Además, esta tabla es una referencia necesaria para elegir los códigos de formato apropiados para obtener la fecha con el formato que desee (de la documentación "datetime" de Python here ).


Hacer

from time import time t = time()

  • t - número flotante, bueno para la medición del intervalo de tiempo.

Hay alguna diferencia para las plataformas Unix y Windows.


La forma más rápida es

>>> import time >>> time.strftime("%Y%m%d") ''20130924''


Lo siguiente es lo que uso para obtener el tiempo sin tener que formatear. A algunas personas no les gusta el método de división, pero es útil aquí:

from time import ctime print ctime().split()[3]

Se imprimirá en formato HH: MM: SS.


Primero importa el módulo datetime desde datetime

from datetime import datetime

Luego imprime la hora actual como ''aaaa-mm-dd hh: mm: ss''

print(str(datetime.now())

Para obtener solo el tiempo en la forma ''hh: mm: ss'' donde ss representa el número completo de segundos más la fracción de segundos transcurridos, simplemente haga;

print(str(datetime.now()[11:])

La conversión de datetime.now () en una cadena produce una respuesta que está en el formato que se siente como las fechas y horas habituales a las que estamos acostumbrados.


Pruebe el módulo de flecha desde http://crsmithdev.com/arrow/ :

import arrow arrow.now()

O la versión UTC:

arrow.utcnow()

Para cambiar su salida, agregue .format ():

arrow.utcnow().format(''YYYY-MM-DD HH:mm:ss ZZ'')

Para una zona horaria específica:

arrow.now(''US/Pacific'')

Hace una hora:

arrow.utcnow().replace(hours=-1)

O si quieres la esencia.

arrow.get(''2013-05-11T21:23:58.970460+00:00'').humanize() >>> ''2 years ago''


Puede usar esta función para obtener la hora (desafortunadamente no dice AM o PM):

def gettime(): from datetime import datetime return ((str(datetime.now())).split('' '')[1]).split(''.'')[0]

Para obtener las horas, minutos, segundos y milisegundos para fusionar más tarde, puede usar estas funciones:

Hora:

def gethour(): from datetime import datetime return return (((str(datetime.now())).split('' '')[1]).split(''.'')[0]).split('':'')[0]

Minuto:

def getminute(): from datetime import datetime return (((str(datetime.now())).split('' '')[1]).split(''.'')[0]).split('':'')[1]

Segundo:

def getsecond(): from datetime import datetime return (((str(datetime.now())).split('' '')[1]).split(''.'')[0]).split('':'')[2]

Milisegundo:

def getmillisecond(): from datetime import datetime return return (str(datetime.now())).split(''.'')[1]


Puede utilizar el módulo de time .

import time print time.strftime("%d/%m/%Y") >>> 06/02/2015

El uso de la capital Y da el año completo, y el uso de y daría el 06/02/15 .

También puedes utilizar para dar un tiempo más largo.

time.strftime("%a, %d %b %Y %H:%M:%S") >>> ''Fri, 06 Feb 2015 17:45:09''


Puedes usar time.strftime() :

>>> from time import gmtime, strftime >>> strftime("%Y-%m-%d %H:%M:%S", gmtime()) ''2009-01-05 22:14:39''


Quiero sacar el tiempo con milisegundos. Una forma sencilla de conseguirlos:

import time, datetime print(datetime.datetime.now().time()) # 11:20:08.272239 # Or in a more complicated way print(datetime.datetime.now().time().isoformat()) # 11:20:08.272239 print(datetime.datetime.now().time().strftime(''%H:%M:%S.%f'')) # 11:20:08.272239 # But do not use this: print(time.strftime("%H:%M:%S.%f", time.localtime()), str) # 11:20:08.%f

Pero solo quiero milisegundos , ¿verdad? La forma más corta de conseguirlos:

import time time.strftime("%H:%M:%S", time.localtime()) + ''.%d'' % (time.time() % 1 * 1000) # 11:34:23.751

Agregue o elimine ceros de la última multiplicación para ajustar el número de puntos decimales, o simplemente:

def get_time_str(decimal_points=3): return time.strftime("%H:%M:%S", time.localtime()) + ''.%d'' % (time.time() % 1 * 10**decimal_points)


Si necesita la hora actual como un objeto de time :

>>> import datetime >>> now = datetime.datetime.now() >>> datetime.time(now.hour, now.minute, now.second) datetime.time(11, 23, 44)


Si solo desea la marca de tiempo actual en ms (por ejemplo, para medir el tiempo de ejecución), también puede usar el módulo "timeit":

import timeit start_time = timeit.default_timer() do_stuff_you_want_to_measure() end_time = timeit.default_timer() print("Elapsed time: {}".format(end_time - start_time))


Si ya está usando NumPy, entonces directamente puede usar la función numpy.datetime64 ().

import numpy as np str(np.datetime64(''now''))

Solo para la fecha:

str(np.datetime64(''today''))

O, si ya estás usando Pandas, entonces puedes usar la función pandas.to_datetime ():

import pandas as pd str(pd.to_datetime(''now''))

O:

str(pd.to_datetime(''today''))


Similar a la respuesta de Harley , pero usa la función str() para obtener un formato legible para los humanos, rápido y sucio:

>>> from datetime import datetime >>> str(datetime.now()) ''2011-05-03 17:45:35.177000''


Simple y fácil:

Usando el módulo datetime ,

import datetime print(datetime.datetime.now().strftime(''%Y-%m-%d %H:%M:%S''))

Salida:

2017-10-17 23:48:55

O

Usando el time ,

import time print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))

Salida:

2017-10-17 18:22:26


Todas son buenas sugerencias, pero me parece más fácil usar ctime() :

In [2]: from time import ctime In [3]: ctime() Out[3]: ''Thu Oct 31 11:40:53 2013''

Esto proporciona una representación de cadena con un buen formato de la hora local actual.


Usando Pandas para obtener la hora actual, como para superar el problema en cuestión:

import pandas as pd print (pd.datetime.now()) print (pd.datetime.now().date()) print (pd.datetime.now().year) print (pd.datetime.now().month) print (pd.datetime.now().day) print (pd.datetime.now().hour) print (pd.datetime.now().minute) print (pd.datetime.now().second) print (pd.datetime.now().microsecond)

Salida:

2017-09-22 12:44:56.092642 2017-09-22 2017 9 22 12 44 56 92693


Utilizar:

>>> import datetime >>> datetime.datetime.now() datetime(2009, 1, 6, 15, 8, 24, 78915) >>> print(datetime.datetime.now()) 2018-07-29 09:17:13.812189

Y justo el tiempo:

>>> datetime.datetime.time(datetime.datetime.now()) datetime.time(15, 8, 24, 78915) >>> print(datetime.datetime.time(datetime.datetime.now())) 09:17:51.914526

Lo mismo, pero un poco más compacto:

>>> datetime.datetime.now().time()

Consulte la documentación para más información.

Para guardar la escritura, puede importar el objeto datetime desde el módulo datetime :

>>> from datetime import datetime

A continuación, elimine el datetime. líder datetime. de todo lo anterior.


.isoformat() está en la documentación, pero aún no está aquí (esto es muy similar a la respuesta de @Ray Vega):

>>> import datetime >>> datetime.datetime.now().isoformat() ''2013-06-24T20:35:55.982000''


datetime.now() devuelve la hora actual como un objeto de fecha y hora ingenuo que representa la hora en la zona horaria local. Ese valor puede ser ambiguo, por ejemplo, durante las transiciones DST ("retroceder"). Para evitar la ambigüedad, se debe utilizar la zona horaria UTC:

from datetime import datetime utc_time = datetime.utcnow() print(utc_time) # -> 2014-12-22 22:48:59.916417

O un objeto compatible con la zona horaria que tiene la información correspondiente de la zona horaria adjunta (Python 3.2+):

from datetime import datetime, timezone now = datetime.now(timezone.utc).astimezone() print(now) # -> 2014-12-23 01:49:25.837541+03:00


>>> from datetime import datetime >>> datetime.now().strftime(''%Y-%m-%d %H:%M:%S'')

Para este ejemplo, la salida será así: ''2013-09-18 11:16:32''

Aquí está la lista de strftime .


>>> from time import gmtime, strftime >>> strftime("%a, %d %b %Y %X +0000", gmtime()) ''Tue, 06 Jan 2009 04:54:56 +0000''

Eso genera el GMT actual en el formato especificado. También hay un método localtime ().

Esta page tiene más detalles.


>>> import datetime, time >>> time = strftime("%H:%M:%S:%MS", time.localtime()) >>> print time ''00:20:58:20S''


from time import ctime // Day {Mon,Tue,..} print ctime().split()[0] // Month {Jan, Feb,..} print ctime().split()[1] // Date {1,2,..} print ctime().split()[2] // HH:MM:SS print ctime().split()[3] // Year {2018,..} print ctime().split()[4]

Cuando llame a ctime (), se convertirán los segundos en una cadena en formato ''Día Mes Fecha HH: MM: SS Año'' (por ejemplo: ''Mié. 17 de enero 16:53:22 2018''), luego llame al método split () que hará una lista de su cadena [''Wed'', ''Jan'', ''17'', ''16:56:45'', ''2018''] (el delimitador predeterminado es el espacio).

Los corchetes se utilizan para ''seleccionar'' el argumento deseado en la lista.

Uno debe llamar a una sola línea de código. Uno no debería llamarlos como lo hice yo, eso fue solo un ejemplo, porque en algunos casos obtendrás diferentes valores, casos raros pero no imposibles.


import datetime date_time = datetime.datetime.now() date = date_time.date() # Gives the date time = date_time.time() # Gives the time print date.year, date.month, date.day print time.hour, time.minute, time.second, time.microsecond

Haga dir(date) o cualquier variable incluyendo el paquete. Puede obtener todos los atributos y métodos asociados con la variable.


import datetime date_time = str(datetime.datetime.now()) date = date_time.split()[0] time = date_time.split()[1]

fecha se imprimirá fecha y hora imprimirá hora.