datetime ingresar - Como obtener la hora actual en Python




semana poner (25)

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.

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


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'))

Puedes usar time.strftime() :

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

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.


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.


¿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 ...


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]

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 .


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.


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.


La forma más rápida es

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

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.


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'

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'

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

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)

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

¿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.


>>> 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.


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.


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

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 ).


Prueba la función os.path.exists

if not os.path.exists(dir):
    os.mkdir(dir)




python datetime time