Soy nuevo en Python y he escrito un script que convierte una fecha de cadena que entra en un formato datetime que sale. Mi problema es que no puede convertir el objeto datetime de nuevo en una cadena para su manipulación. tengo una fecha, por ejemplo, 2011-08-10 14:50:10, todo lo que necesito es agregar un T entre la fecha y la hora y un Z al final. desafortunadamente estoy usando Python 2.3 ya que mi aplicación solo aceptará eso.

Mi código es el siguiente:

fromValue= ''
fromValue = document.Get(self._generic3)
fromValue = fromValue[:fromValue.rindex(" ")]
fromValue = datetime.datetime.fromtimestamp(time.mktime(time.strptime(fromValue,"%a, %d %b %Y %H:%M:%S")))
2
Clayton 11 ago. 2011 a las 13:30

3 respuestas

La mejor respuesta

Parece que está intentando formatear la fecha y hora en formato ISO-8601. Para este propósito, use el método isoformat.

import datetime as dt 
try:
    import email.utils as eu
except ImportError:
    import email.Utils as eu  # for Python 2.3

date_string="Fri, 08 Aug 2011 14:15:10 -0400"
ttuple=eu.parsedate(date_string)
date=dt.datetime(*ttuple[:6])
print(date.isoformat()+'Z')

Rendimientos

2011-08-08T14:15:10Z

Aquí hay un enlace a isoformat y parsedate en los documentos de Python2.3.

3
agf 11 ago. 2011 a las 13:27
toValue = fromValue.strftime("%Y-%m-%dT %H:%M:%SZ")

Esto debería funcionar bien. datetime.strftime estaba disponible en Python 2.3.

Sin duda sería mejor actualizar a al menos Python 2.5 si es posible. Python 2.3 ni siquiera ha recibido parches de seguridad en años.

Editar: Además, no necesita inicializar o declarar variables en Python; fromValue= '' no tiene ningún efecto en su programa.

Edición 2: en un comentario, parece haber dicho que ya lo tiene en una cadena en el formato correcto:

"2011-08-08 14:15:21"

Entonces solo hazlo

'T'.join("2011-08-08 14:15:21".split()) + 'Z'

Si desea agregar las letras mientras es una cadena.

8
agf 11 ago. 2011 a las 14:03
fromValue.strftime('%Y-%m-%d T %H:%M:%S Z')

http://docs.python.org/release/2.3/lib/module-time.html

http://docs.python.org/release/2.3/lib/node208.html

3
agf 11 ago. 2011 a las 09:44