Cómo obtener la hora actual en Python

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

preguntado el 06 de enero de 09 a las 05:01

tenga en cuenta que las respuestas más votadas son para timezonoe-naive datetime, mientras que vemos que en el entorno de producción cada vez más servicios en todo el mundo están conectados entre sí y la fecha y hora con reconocimiento de zona horaria se convierte en el estándar requerido -

también, para django, ver acá para conocer la zona horaria -

30 Respuestas

Uso:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150

Y justo el tiempo:

>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.now().time())
15:08:24.789150

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

Para evitar escribir, puede importar el datetime objeto del datetime módulo:

>>> from datetime import datetime

Luego quite el líder datetime. de todo lo anterior.

Respondido 29 Oct 19, 20:10

Sería bueno si esta respuesta cubriera zonas horarias (tal vez UTC como ejemplo) y tal vez comience con time.time (). - Greg Lindahl

@Toskan, el formato no era parte de la pregunta, por lo que no debería ser parte de la respuesta. Ya se proporciona un enlace a más documentación del módulo que contiene cosas como formatear. - JiyuuSensei

¿En qué versión de Python se dio la respuesta original? Solo escribiendo datetime.datetime.now() en mi consola interactiva Python 2.7 (IronPython aún no se ha actualizado) me da el mismo comportamiento que el ejemplo más reciente usando print() en la respuesta. No he replicado con éxito lo que muestra la respuesta original (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (No es que realmente quiera, se prefiere el comportamiento print (), pero tengo curiosidad). RTHarston

@BobVicktor: Python 2.7, 3.7 y 3.8 dan el mismo comportamiento para mí, no estoy seguro de lo que estás viendo. - Harley Holcombe

@HarleyHolcombe Hmm ... ¿tal vez es una cosa de IronPython? Cuando escribo datetime.now() solo lo imprime de la misma manera que lo muestra su respuesta print(datetime.now())... - RTHarston

Puedes usar time.strftime():

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

Respondido 21 Feb 13, 01:02

¿Es esto mejor / peor que la respuesta de @ ParaMeterz a continuación? ¿Por qué deberíamos usar el time módulo vs. datetime ¿módulo? - Nathan

No devuelve la hora actual de mi computadora. - Saeed

Esta es la hora UTC, diferente del módulo de fecha y hora: Voyager

@Saeed: usa la función localtime() en vez de gmtime() para obtener su hora local. - Jeyekomon

@frank Ver pregunta relacionada on datetime vs time. - Packard CPW

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

Respondido el 23 de enero de 20 a las 16:01

Similar a La respuesta de Harley, pero usa el str() función para un formato rápido y sucio, un poco más legible por humanos:

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

contestado el 23 de mayo de 17 a las 14:05

Todo lo que pide es obtener la hora actual, no mostrarla. - picante

Irrelevante; el paso "str" ​​no está dentro del alcance de la pregunta - picante

@pppery Tampoco dice la operación que no se trata de obtener una cadena de tiempo. El operador no dice en absoluto lo que quieren hacer con el tiempo, entonces, ¿por qué es malo mostrar cómo convertirlo en una cadena? La mayoría de las respuestas hablan de obtener una cadena de la época, por lo que parece ser un caso de uso común, entonces, ¿por qué destacar la respuesta de Ray? ¿De qué sirve simplemente aprovechar el tiempo sin saber cómo do algo con eso? Puede imprimirlo o hacer cálculos matemáticos en él, y solo un par de las respuestas muestran cómo hacerlo, por lo que creo que imprimir / obtener una cadena es un uso común. ;-) (Sé que es lo que vine a buscar.) - RTHarston

El hecho de que esta respuesta tenga más de 440 votos a favor sugiere que la adición menor del método de cadena sí estaba útil para mucha gente. - John

El hecho de que 440 personas buscaran contenido que no es una respuesta real a la pregunta no hace que ese contenido sea una respuesta a la pregunta. - picante

¿Cómo obtengo la hora actual en Python?

La time módulo

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

import time

Época de Unix

Este es el formato en el que debe obtener las marcas de tiempo para guardar en las bases de datos. Es un número de punto flotante simple que se puede convertir en un número 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, 00:00:00, y es luz de 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 segundos intercalares, por lo que no es lineal; los segundos intercalares se ignoran. Entonces, si bien no es equivalente al estándar internacional UTC, está cerca y, por lo tanto, es bastante bueno para la mayoría de los casos de mantenimiento de registros.

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

time.ctime

También puede representar la hora actual en la forma 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 que otros esperan) . Esto suele ser fácil de usar, pero no suele dar como resultado cadenas que se puedan ordenar cronológicamente:

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

Puede hidratar las marcas de tiempo en una forma legible por humanos con ctime también:

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

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

datetime módulo

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

>>> import datetime

datetime.datetime.now

La datetime.now es un método de clase que devuelve la hora actual. Usa el time.localtime sin la información de la zona horaria (si no se proporciona, de lo contrario, consulte la zona horaria a continuación). Tiene una representación (que le permitiría recrear un objeto equivalente) que se repite en el shell, pero cuando se imprime (o se coacciona a un str), está en formato legible por humanos (y casi ISO), y el tipo lexicográfico es equivalente al tipo 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

fecha y hora utcnow

Puede obtener un objeto de fecha y hora en hora UTC, un estándar global, haciendo 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. (Aunque GMT y UTC no cambian para el horario de verano, sus usuarios pueden cambiar a otras zonas horarias, como el horario de verano británico, durante el verano).

Fecha y hora consciente de la zona horaria

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 pytz módulo:

>>> 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 el timezone clase con un utc timezone instancia adjunta, que también hace que el objeto sea consciente de la zona horaria (pero para convertir a otra zona horaria sin la práctica pytz el módulo 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 pytz zona horaria localize método, o reemplazando el atributo tzinfo (con replace, esto se hace a ciegas), pero estos son más los últimos 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>)

La pytz módulo nos permite hacer nuestro datetime objetos conscientes de la zona horaria y convertir las horas a los cientos de zonas horarias disponibles en el pytz módulo.

Se podría aparentemente serializar este objeto para la hora UTC y almacenar que 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 qué zona horaria está destinada a una cadena o un objeto de fecha y hora serializado.

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

Respondido el 02 de enero de 21 a las 14:01

Creo que todos pueden estar de acuerdo en que ctime tiene que ser la forma más extraña de formatear una fecha y hora. Día de la semana y mes abreviado, día del mes, 24 horas h: m: s, y luego un año de cuatro dígitos. Los nerds a los que les gusta ordenar cadenas de citas, estadounidenses, europeos ... todos, sí, todos, pueden encontrar al menos dos cosas que los irritan en ese formato. Aunque lo usaré porque es super fácil. - ArtOfWarfare

Como digo anteriormente con respecto a ctime: "También puede representar la hora actual de la forma 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 en otros esperar). Esto suele ser fácil de usar, pero no suele dar como resultado cadenas que se puedan ordenar cronológicamente: "- Aaron Hall ♦

Do

from time import time

t = time()
  • t - número de flotación, bueno para la medición del intervalo de tiempo.

Existe alguna diferencia para las plataformas Unix y Windows.

Respondido el 04 de diciembre de 15 a las 09:12

Mi resultado en Windows 10 Home fue 1576095264.2682993; para Windows, esto podría dar el tiempo en segundos. - Restablecer C0MMUNiSM

>>> 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 una localtime() método.

Este patrón de página tiene más detalles.

contestado el 31 de mayo de 19 a las 11:05

Las respuestas anteriores son todas buenas sugerencias, pero las encuentro más fáciles de 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 formato agradable de la hora local actual.

Respondido el 19 de Septiembre de 19 a las 17:09

El OP preguntó cómo obtener el tiempo, no cómo mostrarlo! - TheTechRobo36414519

La forma más rápida es:

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

Respondido el 19 de Septiembre de 19 a las 17:09

Si necesita la hora actual como time :

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

respondido 23 nov., 11:22

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

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

Respondido el 07 de junio de 18 a las 01:06

¿Por qué no preguntar al Observatorio Naval de EE. UU., el cronometrador oficial de la Marina 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 ...

Respondido 19 ago 16, 22:08

@ C8H10N4O2 Si bien tiene razón en que las otras respuestas asumen que su computadora ya sabe la hora correcta, esta respuesta asume que la computadora tiene una conexión a Internet, que está en los EE. UU. Y que nunca eliminarán ese archivo / alterar el enlace. Muchas más suposiciones en esta respuesta de las aceptadas. Aún así, inteligente sudobangbang

Usar Los pandas para obtener la hora actual, exagerando 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

contestado el 31 de mayo de 19 a las 12:05

Este método quedará obsoleto en futuras versiones de pandas. En su lugar, utilice el módulo de fecha y hora. - bfree67

Puede utilizar el time módulo:

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

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

También puede usar el siguiente código para dar un tiempo más largo:

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

Respondido el 07 de enero de 21 a las 12:01

Esto es con lo que terminé yendo:

>>>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 el formato de fecha tal como lo desea (de la documentación de Python "datetime" acá).

tabla de códigos de formato strftime

Respondido el 09 de enero de 15 a las 21:01

strftime(time_format) devuelve la hora local actual como una cadena que corresponde a la dada time_format. Nota: time.strftime() y datetime.strftime() admite diferentes conjuntos de directivas, por ejemplo, %z no es compatible con time.strftime() en Python 2. - jfs

¿Es una mejor práctica usar datetime en lugar de time? - Kristen G.

Muchos time las funciones del módulo son envoltorios finos alrededor de las funciones C correspondientes. datetime es un nivel superior y suele ser más portátil. - jfs

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

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

solo por fecha:

str(np.datetime64('today'))

o, si ya está usando pandas, puede usar la función pandas.to_datetime ()

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

o,

str(pd.to_datetime('today'))

contestado el 31 de mayo de 19 a las 14:05

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 de DST ("retroceso"). 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 con reconocimiento de zona horaria que tiene adjunta la información de zona horaria correspondiente (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

Respondido el 23 de diciembre de 14 a las 01:12

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

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

Respondido el 07 de junio de 18 a las 01:06

@snofty y @ user1016274, si import datetime entonces es datetime.datetime.now()\ n si from datetime import datetime entonces es datetime.now() - theBuzzyCoder

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

Respondido el 14 de Septiembre de 19 a las 15:09

Creo que quieres decir "datetime.now (). Strftime (...)" - hlin117

sí, se puede hacer como dijiste. "datetime.datetime.now (). strftime ("% H:% M:% S:% MS ")" - user2030113

% MS no te da milisegundos !! - ZF007

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

import datetime

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

La salida se parece a la siguiente:

2018-03-01 17:03:46.759624

Respondido el 07 de junio de 18 a las 02:06

Esta pregunta no necesita una nueva respuesta por el simple hecho de hacerlo ... un juguete / módulo nuevo y brillante, sin embargo, es suficiente justificación. Que siendo el Biblioteca de péndulo, que parece hacer el tipo de cosas que Arrow intentó, excepto sin los defectos y errores inherentes que acosan a Arrow.

Por ejemplo, la respuesta a la pregunta original:

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

Hay muchos estándares que deben abordarse, incluidos varios RFC e ISO, de los que preocuparse. Alguna vez los mezcló; no te preocupes, echa un vistazo a dir(pendulum.constants) Sin embargo, hay un poco más que formatos RFC e ISO.

Cuando decimos local, ¿a qué nos referimos? Bueno, quiero decir:

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

Presumiblemente, la mayoría de ustedes se refieren a otra parte.

Y así sigue. En pocas palabras: Péndulo intenta hacer para la fecha y la hora lo que hicieron las solicitudes para HTTP. Vale la pena considerarlo, particularmente por su facilidad de uso y su extensa documentación.

Respondido el 29 de diciembre de 19 a las 01:12

Hora actual de una zona horaria

from datetime import datetime
import pytz

tz_NY = pytz.timezone('America/New_York') 
datetime_NY = datetime.now(tz_NY)
print("NY time:", datetime_NY.strftime("%H:%M:%S"))

tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London time:", datetime_London.strftime("%H:%M:%S"))

tz_India = pytz.timezone('Asia/India')
datetime_India = datetime.now(tz_India)
print("India time:", datetime_India.strftime("%H:%M:%S"))

#list timezones
pytz.all_timezones

respondido 11 mar '20, 23:03

Prueba el módulo de flechas de 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 lo esencial.

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

Respondido el 07 de junio de 18 a las 01:06

cuidado con eso arrow.now('Time/Zone') puede fallar en algunas zonas horariasarrow usos dateutil que ha roto utc -> conversiones locales que se usan en el interior arrow.now(). Nota: pytz no tiene tal problema. Además, hay otros problemas relacionados con la zona horaria - jfs

Quiero obtener el tiempo en 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 yo quiero solo milisegundos, ¿derecho? 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)

Respondido el 07 de junio de 18 a las 01:06

Esto funciona en Python 3: time.strftime ("% H:% M:% S", time.localtime ()) + '. {}'. Format (int (time.time ()% 1 * 1000)) - Greg Graham

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

Respondido 18 Jul 18, 10:07

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 que las horas, los minutos, los segundos y los milisegundos se fusionen más tarde, puede utilizar estas funciones:

Hora:

def gethour():
    from datetime import datetime
    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 (str(datetime.now())).split('.')[1]

Respondido 13 ago 19, 19:08

import datetime

todays_date = datetime.date.today()
print(todays_date)
>>> 2019-10-12

# adding strftime will remove the seconds
current_time = datetime.datetime.now().strftime('%H:%M')
print(current_time)
>>> 23:38

Respondido 12 Oct 19, 21:10

Puedes probar lo siguiente

import datetime

now = datetime.datetime.now()
print(now)

or

import datetime

now = datetime.datetime.now()
print(now.strftime("%Y-%b-%d, %A %I:%M:%S"))

respondido 30 nov., 20:17

Porque nadie lo ha mencionado todavía, y esto es algo con lo que me encontré recientemente ... el método fromutc () de una zona horaria de pytz combinado con utcnow () de datetime es la mejor manera que he encontrado para obtener una hora actual (y fecha) útil en cualquier zona horaria.

from datetime import datetime

import pytz


JST = pytz.timezone("Asia/Tokyo")


local_time = JST.fromutc(datetime.utcnow())

Si todo lo que quieres es el tiempo, puedes conseguirlo con local_time.time().

Respondido 06 Jul 18, 11:07

Sorprendentemente, todas las respuestas anteriores no mencionaron las zonas horarias. también debe incluir strftime para obtener el formato que desea. - GraphicalDot

No incluí eso porque ya se ha cubierto en otras respuestas (y el formato de visualización no era parte de la pregunta). - kungphu

Esta pregunta es para Python, pero dado que Django es uno de los frameworks más utilizados para Python, es importante tener en cuenta que si está usando Django siempre puede usar timezone.now() en lugar de datetime.datetime.now(). El primero es "consciente" de la zona horaria, mientras que el segundo no lo es.

Vea esta SO respuesta y el Documento de Django para obtener detalles y justificación timezone.now().

from django.utils import timezone

now = timezone.now()

Respondido el 05 de junio de 19 a las 14:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.