finalSimpleDateFormat DATUM =newSimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
Letztlich steht dann das Datum in einem String.
Jetzt möchte ich diesen String irgendwie überprüfen, was da als yyyy oder ss drinsteht. Wie geht das? Weil einfach splitten funzt ja net, weil ich verschiedene "Trenner" hab.
importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.GregorianCalendar;publicclassTester2{publicstaticvoidmain(String[] args){finalSimpleDateFormat DATUM =newSimpleDateFormat("yyy-MM-dd-HH:mm:ss");Calendar cal =easterSunday(Calendar.getInstance().get(Calendar.YEAR));System.out.println(DATUM.format(cal.getTime()));}publicstaticGregorianCalendareasterSunday(int year ){int i = year %19;int j = year /100;int k = year %100;int l =(19* i + j -(j /4)-((j -((j +8)/25)+1)/3)+15)%30;int m =(32+2*(j %4)+2*(k /4)- l -(k %4))%7;int n = l + m -7*((i +11* l +22* m)/451)+114;int month = n /31;int day =(n %31)+1;returnnewGregorianCalendar( year, month -1, day );}}
Ich denke was du suchst, sind Reguläre Ausdrücke. Kleines Beispiel:
Java:
importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassDatumRegex{publicstaticvoidmain(String[] args){String datum ="2012-03-01-12:29:52";String pattern ="(\\d{4})-(0{1}[1-9]{1}|1{1}[0-2]{1})-(0{1}[1-9]{1}|[1-2]{1}[0-9]{1}|3{1}[0-1]{1})-([0-1]{1}[0-9]{1}|2[0-3]{1}):([0-5]{1}[0-9]{1}):([0-5]{1}[0-9]{1})";int jahr;int monat;int tag;int stunde;int minute;int sekunde;Pattern p =Pattern.compile(pattern);Matcher m = p.matcher(datum);if(m.matches()){
jahr =Integer.parseInt(m.group(1));
monat =Integer.parseInt(m.group(2));
tag =Integer.parseInt(m.group(3));
stunde =Integer.parseInt(m.group(4));
minute =Integer.parseInt(m.group(5));
sekunde =Integer.parseInt(m.group(6));System.out.println("Der zu überprüfende String lautet: "+ m.group(0));System.out.println("Wir befinden uns im Jahr "+ jahr +" am "+ tag +". Tage des Monats "+ monat +". Die Stunde "+ stunde +" hat geschlagen und ist "+ minute +" Minuten und "+ sekunde +" Sekunden alt.");}else{System.out.println("Das eingebene Datum ist ungültig.");}}}
finalSimpleDateFormat DATUM =newSimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
Letztlich steht dann das Datum in einem String.
Jetzt möchte ich diesen String irgendwie überprüfen, was da als yyyy oder ss drinsteht. Wie geht das? Weil einfach splitten funzt ja net, weil ich verschiedene "Trenner" hab
Nur mal so nebenbei: natürlich kannst Du das splitten, dann allerdings in zwei Schritten, bspw. erst nach ":" und dann die drei Teile im Ergebnis nach "-"
Nur mal so nebenbei: natürlich kannst Du das splitten, dann allerdings in zwei Schritten, bspw. erst nach ":" und dann die drei Teile im Ergebnis nach "-"
Nö, geht auch alles auf einmal. Split erwartet nämlich eine Regex. Wenn die schlau genug gewählt ist, ist es ein Schritt. Welche das sein könnte? Siehe SlaterB's Post von 11:00.