2011-06-09 16 views
15

Llamo a un script de IronPython y le paso un objeto .NET que contiene una estructura DateTime.¿Cómo convierto de un .NET DateTime a un datetime de IronPython?

Estoy tratando de utilizar el soporte JSON de IronPython para serializar el objeto como JSON.

Todo funciona bien hasta que encuentro el .NET DateTime.

¿Cómo puedo convertir desde .NET DateTime a IronPython datetime?

+0

¿el último comentario ayuda http://msdn.microsoft.com/en-us/library/system.datetime%28v=vs .90% 29.aspx – keyboardP

+1

Fue un poco útil. puede extraer manualmente los campos del DateTime y construir un nuevo datetime, pero esperaba una manera fácil. Parece que esto sería algo común. – ScArcher2

Respuesta

17

Previendo que las personas les gustaría convertir entre éstos que en realidad hacen que sea muy fácil:?

import datetime 
from System import DateTime 
datetime.datetime(DateTime.Now) 
+0

+1 Increíble, tienes razón, acabo de probar esto en una consola equivocada. –

+0

¡Esto es exactamente lo que estaba buscando! – ScArcher2

4

Como sabemos, el tipo datetime tiene la siguiente estructura: datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]). Entonces, todo lo que necesita es encontrar la manera de cumplir con las opciones requeridas.

strptime aún no está implementado (de lo contrario tendría la capacidad de llamar simplemente datetime.datetime.strptime(DateTime.Now.ToString(format), format).strftime(format)) en IronPython su lugar, puede utilizar el siguiente código (no muy optimizado uno) por ahora:.

from System import DateTime 

import datetime 

d = DateTime.Now 

print datetime.date(d.Year, d.Month, d.Day) 
print datetime.datetime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second) 
+0

Esta es la solución que terminé usando. – ScArcher2

+0

Yo también. Creo que los dos estamos esperando ahora para el próximo lanzamiento de Iron Python con la realización de strptime –

Cuestiones relacionadas