Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
final SimpleDateFormat DATUM = new SimpleDateFormat(
"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.
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Tester2
{
public static void main(String[] args)
{
final SimpleDateFormat DATUM = new SimpleDateFormat("yyy-MM-dd-HH:mm:ss");
Calendar cal = easterSunday(Calendar.getInstance().get(Calendar.YEAR));
System.out.println(DATUM.format(cal.getTime()));
}
public static GregorianCalendar easterSunday( 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;
return new GregorianCalendar( year, month - 1, day );
}
}
Ich denke was du suchst, sind Reguläre Ausdrücke. Kleines Beispiel:
Java:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DatumRegex {
public static void main(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.");
}
}
}
final SimpleDateFormat DATUM = new SimpleDateFormat("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.