72 votes

Groovy String à ce jour

Je suis ce codage avec Groovy

Je suis en train d'essayer de convertir une chaîne de caractères que j'ai une date, sans avoir à faire quelque chose de trop fastidieux.

String theDate = "28/09/2010 16:02:43";
def newdate = new Date().parse("d/M/yyyy H:m:s", theDate)

Sortie:

Tue Aug 10 16:02:43 PST 2010

Le code ci-dessus fonctionne très bien, cependant lors de mes changements de chaînes à quelque chose comme:

String testDate = "Tue Aug 10 16:02:43 PST 2010"
def newerdate = new Date().parse("d/M/yyyy H:m:s", testDate)

Il me dit que "il n'existe pas de valeur pour l'Aut". J'ai essayé de jeter un 'E' dans l'analyse pour la date, mais il dit que la date n'a pas pu être analysée.

Quelqu'un peut m'expliquer comment je dois aller sur l'analyse du deuxième exemple?

74voto

Mark Thomas Points 19281

Le premier argument de parse() est le format attendu. Vous avez changer d' Date.parse("E MMM dd H:m:s z yyyy", testDate) pour que cela fonctionne. (Notez que vous n'avez pas besoin de créer un nouvel objet Date, c'est une méthode statique)

Si vous ne savez pas à l'avance ce format, vous aurez à trouver un spécial de l'analyse de la bibliothèque pour que. En Ruby, il y a une bibliothèque appelée Chronique, mais je ne suis pas au courant de Groovy équivalent. Edit: Il y a un Java port de la bibliothèque appelée jChronic, vous pourriez vouloir vérifier.

28voto

gcores Points 6618

Essaye ça:

 def newerdate = new Date().parse("E MMM dd H:m:s z yyyy", testDate)
 

Voici les modèles pour formater les dates

24voto

ataylor Points 31154

JChronic est votre meilleur choix. Voici un exemple qui ajoute une méthode .fromString() à la classe Date et qui analyse à peu près tout ce que vous pouvez lui envoyer:

 Date.metaClass.'static'.fromString = { str ->
    com.mdimension.jchronic.Chronic.parse(str).beginCalendar.time
}
 

Vous pouvez l'appeler comme ça:

 println Date.fromString("Tue Aug 10 16:02:43 PST 2010")
println Date.fromString("july 1, 2012")
println Date.fromString("next tuesday")
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X