SimpleDateFormat

  • Themenstarter Themenstarter Gast2
  • Beginndatum Beginndatum
G

Gast2

Gast
Hallo zusammen,

kann man ein SimpleDateFormat umbiegen, so dass ich immer Tag/Monat/Jahr ausgeben kann. Je nach Format welches das SimpleDateFormat gerade besitzt?
 
d.h. wenn ich explizit das Format Monat/Tag/Jahr ihm gebe, soll er dennoch Tag/Monat/Jahr ausgeben ?
 
Okay falsch beschrieben.

Ich bekomme ein SDF Format rein und ich hab eine Validierunskomponente(vorgegeben) der parst halt nach 3 strings ob das datum gültig ist:
1. "dmy"
2. "mdy"
3. "ymd"

Und das will ich halt irgendwie synchron halten.
 
das Ziel ist noch nicht klar, was soll eigentlich die Ausgabe werden, Date oder String?
wenn drei Formate möglich sind musst eh irgendwann irgendwo die drei SimpleDateFormat auf den unbekannten String loslassen,
irgendwer wird schon ein Date liefern, das kannst du danach so weiterverwenden oder bei Bedarf in einem bestimmten Format formatieren,
wo an dieser Stelle besteht ein Problem, was soll anders ablaufen?

wobei
> Ich bekomme ein SDF Format rein
wiederum nach ganz was anderem klingt, wahrscheinlich habe ich es falsch verstanden

---

ich hab am Anfang schon spaßeshalber folgendes zusammenprogramiert,
aber das ist ja so simpel dass ich mich bisher getraut habe es zu posten 😉 :
Java:
public class Test {
    public static void main(String[] args)    throws ParseException  {
        SimpleDateFormat better = new SimpleDateFormat("dd/MM/yyyy");
        SimpleDateFormat older = new SimpleDateFormat("yyyy:dd:MM");
        DateFormatChanger c = new DateFormatChanger(better,older);       
        System.out.println(c.parseFormat("2009:30:12"));
    }
}
class DateFormatChanger {
    private DateFormat better;
    private DateFormat older;

    public DateFormatChanger(DateFormat better, DateFormat older)  {
        this.better = better;
        this.older = older;
    }

    public String parseFormat(String old)  throws ParseException {
        return better.format(older.parse(old));
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Nee will aus nem SimpleDateFormatter einen String basteln abhängig vom pattern. ich muss es in eine der 3 möglichkeiten umwandeln beispiele dabei. aber gibts wohl nichts darum selber was überlegen^^...


1.dmy z.b. dd.mm.yyyy
2.mdy z.b mm.dd.yyyy
3.ymd z.b. yyyy.mm.dd
 
Hi,

Wenn ich dich richtig verstanden habe, hast du also einen String, der in einem der drei genannten Datumsformate vorliegt. Du weißt aber nicht in welchem, richtig? Wenn das so ist, frag ich mich, wie das Ganze überhaupt funktionieren soll. Denn wenn ich nicht weiß, welches Format der String hat, kann ich auch nicht sagen, ob der String "030510" den dritten Mai oder den 5. März meint.

Falls du irgendeine Markierung hast, würde ich mir eine Art SimpleDateFormatterCache schreiben, der eine Maple von Markiert auf korrekt initialisierte SimpleDateFormatter Instanzen hält und je nach Marker die richtige Instanz liefert.

Nur so eine erste Idee und Frage.

Schönen Abend noch,
Andreas
 
klar weiß ich welchen ich nehmen muss...
ich muss nur vom SimpleDateFormat das toPattern aufrufen und dann halt schauen ist wo ist 'D' wo ist 'M' wo ist 'Y'. Je nach position weiß ich es ja, ist zwar häßlich aber was anderes fällt mir nicht und gibts wohl auch nicht.
 
Also du bekommst ein zb ein Format wie "dmy" und willst dann das ensprechend richte DateFormat benutzen?

Java:
 HashMap<String, DateFormat> dateFormatMap = new HashMap<String, DateFormat>();
      dateFormatMap.put("dmy", new SimpleDateFormat("dd.MM.yyyy"));
      dateFormatMap.put("mdy", new SimpleDateFormat("MM.dd.yyyy"));
      dateFormatMap.put("ymd", new SimpleDateFormat("yyyy.MM.dd"));
   
      
      String format = "ymd";
      String dateToParse = "1983.11.07";
      
      System.out.println(dateFormatMap.get(format).parseObject(dateToParse));
wäre das eine lösung?
 
Nee^^...

Ich bekomm irgendein SimpleDateFormat dass ich zur Anzeige habe... EGAL was für eins...

Und es gibt in JSF Tag welches die Validierung übernimmt (Kein Einfluss drauf). Und das Ding kann eben nur die 3 Formate und ich muss halt die richtige Reihenfolge für 'D' , 'M' und 'Y' rausfinden um den Validierungsstring richtig zu setzen...
Weil wenn ich SimpleDateFormat MM/dd/yy habe. Muss ich als Validierungstag "mdy" setzen.
und nicht "dmy" weil sonst Monat und Tag vertauscht ist.

Deshalb wollte ich wissen ob man von SimpleDateFormat irgendwie die Reihenfolge von Tag Monat Jahr rausfinden kann. Aber wohl nicht darum selber machen 😉...
 
Deshalb wollte ich wissen ob man von SimpleDateFormat irgendwie die Reihenfolge von Tag Monat Jahr rausfinden kann. Aber wohl nicht darum selber machen 😉...
Du kannst dir das aktuelle Pattern jederzeit mit der Methode toPattern() aus der Klasse SimpleDateFormat holen. Musst den String dann halt auswerten (mit 'nem regulären Ausdruck z.B.).
 

Zurück
Oben