create - Convertir una cadena a una cadena de fecha y hora formateada usando Python
timedelta python example (5)
Estoy tratando de convertir una cadena "20091229050936" en "05:09 29 de diciembre de 2009 (UTC)"
>>>import time
>>>s = time.strptime("20091229050936", "%Y%m%d%H%M%S")
>>>print s.strftime(''%H:%M %d %B %Y (UTC)'')
da AttributeError: ''time.struct_time'' object has no attribute ''strftime''
Claramente, cometí un error: el tiempo es incorrecto, ¡es un objeto de fecha y hora! ¡Tiene un componente de fecha y hora!
>>>import datetime
>>>s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
da AttributeError: ''module'' object has no attribute ''strptime''
¿Cómo voy a convertir una cadena en una cadena de fecha formateada?
Para los objetos datetime
, strptime
es un método estático de la clase datetime
, no una función gratuita en el módulo datetime
:
>>> import datetime
>>> s = datetime.datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
>>> print s.strftime(''%H:%M %d %B %Y (UTC)'')
05:09 29 December 2009 (UTC)
Para mí, este es el mejor y también funciona en Google App Engine.
Ejemplo que muestra UTC-4
import datetime
UTC_OFFSET = 4
local_datetime = datetime.datetime.now()
print (local_datetime - datetime.timedelta(hours=UTC_OFFSET)).strftime("%Y-%m-%d %H:%M:%S")
Puede usar easy_date para hacerlo más fácil:
import date_converter
my_datetime = date_converter.string_to_string("20091229050936", "%Y%m%d%H%M%S", "%H:%M %d %B %Y (UTC)")
time.strptime
devuelve un time_struct
; time.strftime
acepta un time_struct
como parámetro opcional:
>>>s = time.strptime(page.editTime(), "%Y%m%d%H%M%S")
>>>print time.strftime(''%H:%M %d %B %Y (UTC)'', s)
da 05:09 29 December 2009 (UTC)
from datetime import datetime
s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
print("{:%H:%M %d %B %Y (UTC)}".format(s))