Dans mon application Java, j'utilise un instance dateformat code> d'instance de date d'analyse.
DateFormat fmt;
fmt = DateFormat.getDateInstance(DateFormat.DEFAULT) // dd.MM.yyyy for de_DE
6 Réponses :
Vous devrez analyser avec un format de dd.mm.yy et de reformater avec un format de AAAAY-MM-DD
DateFormat sdfp = new SimpleDateFormat("dd.mm.yy"); Date d = sdfp.parse(input); DateFormat sdff = new SimpleDateFormat("yyyy-MM-dd"); String date = sdff.format(d);
Il semble que ma question était un peu ambiguë. Je ne veux pas avoir une représentation de chaîne dans le format ISO, je veux la date d'avoir la bonne année (2011 au lieu de 11, I.E. +2.000 ans)
Je ne sais pas comment Java prendra 11 en 2011 et non comme 1911 ou une valeur non plus.
@Asgs: Le lien Josh.trow fourni, répond au moins à la question pour SimpleDateFormat code>. Le temps de création de l'instance est utilisé pour choisir hurciquement le siècle.
Pour analyser le modèle d'année abrégé ("Y" ou "YY"), SimpleDateFormat doit interpréter l'année abrégée par rapport à un siècle. Cela fait cela en ajustant les dates à être dans les 80 ans avant et 20 ans après la création de l'instance SimpleDateFormat. Code> - C'est fantastique. Merci pour l'indice.
La réponse a raison, mais j'utiliserais un court au lieu de "dd.mm.yy".
@Dr whoops, merci pour la correction, j'ai oublié comment épeler apparemment :)
Votre solution ici est suffisamment simple pour permettre l'utilisation de SimpleDateFormat, qui inclut la méthode set2digityearstart (date startdate) code>. Peut-être semble-t-il quelque chose comme ça.
Appeler set2digityearstart code> ne remplace que les 80-20 heuristiques. La solution réelle utilise le modèle
yy code> plutôt que
aaaa code>.
Oui, vous pouvez analyser à l'aide de DateFormat.short au lieu de défaut. P>
ou éventuellement, essayez d'analyser avec court, puis essayez d'autres formats si cela ne fonctionne pas. P>
Vous pouvez analyser cette date à l'aide de SimpleDateFormat, mais comment vous allez déterminer que c'était 1911 ou 2011 ou autre chose. Vous devriez utiliser le format de l'année comme aaaa. p>
Si vous utilisez GWT, vous n'avez pas accès à SimpleDateDormat, alors voici un certain code pour le faire manuellement: Ceci suppose que vous avez validé que le DateText est séparé d'espaces . p> p>
une approximation: peut ou non adapté à votre besoin ... p> p>