2008-12-01 9 views
2

d'une chaîne comme ci-dessous, je dois convertir:Jython date de conversion

1 déc 2008 06:43:00 +0100

à

MM/JJ/AAAA HH: MM: SSAM

en utilisant jython quelle est la meilleure façon de faire cela?

Répondre

2

Je n'ai pas Jython à portée de main, mais je pense quelque chose comme cela fonctionne:

import java 
sdf = java.text.SimpleDateFormat 

fmt_in = sdf('d MMM yyyy HH:mm:ss Z') 
fmt_out = sdf('MM/dd/yyyy HH:mm:ssaa') 

fmt_out.format(fmt_in.parse(time_str)) 
1

Jython 2.5b0 (beta) a une mise en œuvre de la time module qui comprend

strptime(string[, format]).

Analyser une chaîne représentant une heure en fonction d'un format. La valeur de retour est un struct_time tel que retourné par gmtime() ou localtime().

(strptime est manquant dans Jython2.2.1).

Une version python des formats de conversion ressemblera (pas sûr de la composante de la zone):

import time 
mytime = time.strptime("1 Dec 2008 06:43:00 +0100", "%d %b %Y %H:%M:%S %Z") 
new_time_string = time.strftime("%m/%d/%Y %I:%M:%S%p", mytime) 
+0

Jython 2.2.1 ne marche pas time.strptime de soutien. – Setori

+0

À partir de la version 2.5.2 de jython, malheureusement, la version intégrée de strptime ne détecte pas la plupart des erreurs et retourne un faux temps à la place: http://bugs.jython.org/issue1692. Comme alternative, vous pouvez essayer d'utiliser une pure implémentation Python de strptime: http://code.activestate.com/recipes/56036-pure-python-strptime/ – roskakori

+0

Quand time.strptime() ne le fera pas, vous pouvez vous tourner Retour au côté Java - http://joda-time.sourceforge.net/ – gimel