Hallo,
ich möchte org.joda.time.LocalDate ein Datum übergeben, das ich als String z.B. "20.10.2014" aus einem JTextField erhalte. Da der Konstruktor von LocalDate so aussieht
LocalDate(int year, int monthOfYear, int dayOfMonth)
habe ich mir überlegt, den String in die Teile Jahr, Monat und Tag zu zerlegen. Ich versuche das mit einer Methode zu machen, die dann ein Array als Rückgabewert liefert.
und als Main-Klasse
Die Feldvariablen dateShare[..] will ich an die äquivalenten Parameter von LocalDate einfügen.
Mit dieser Konstellation erhalte ich folgenden Stack-Trace
Eigentlich will ich das zurückgegebene Array in die dazugehörigen Einzelteile zerlegen. Irgendwie habe ich hier noch einen Denkfehler. Bzw. mich interessiert auch, ob eine Möglichkeit gibt, LocalDate direkt ein Datum als String zu übergeben, dann wäre diese Methode überflüssig.
Grüße
Sherry
ich möchte org.joda.time.LocalDate ein Datum übergeben, das ich als String z.B. "20.10.2014" aus einem JTextField erhalte. Da der Konstruktor von LocalDate so aussieht
LocalDate(int year, int monthOfYear, int dayOfMonth)
habe ich mir überlegt, den String in die Teile Jahr, Monat und Tag zu zerlegen. Ich versuche das mit einer Methode zu machen, die dann ein Array als Rückgabewert liefert.
Java:
* DateDisassembler.java
package com.example;
public class DateDisassembler {
/**
* @param date
* The parameter date will disassemble to day(0), to month(1) and to year(2).
* It returns an array variable that contains these three values.
*/
@SuppressWarnings("null")
public int[] disassemble(String date) {
int dateShare[] = {1,2,3};
String delimiter = ".";
dateShare[0] = Integer.parseInt(StringUtils.substringBefore(date, delimiter));
dateShare[1] = Integer.parseInt(StringUtils.substringBefore(StringUtils.substringAfter(date, delimiter), delimiter));
dateShare[2] = Integer.parseInt(StringUtils.substringAfter(StringUtils.substringAfter(date, delimiter),delimiter));
return dateShare;
}
}
und als Main-Klasse
Java:
package com.example;
public class TestDisassembler {
public static void main(String[] args) {
String date = "12.10.2014";
DateDisassembler d = new DateDisassembler();
int[] dateShare = {};
dateShare[0] = d.disassemble(date);
dateShare[1] = d.disassemble(date);
dateShare[2] = d.disassemble(date);
System.out.println("Tag : " + dateShare[0]);
System.out.println("Monat : " + dateShare[1]);
System.out.println("Jahr : " + dateShare[2]);
}
}
Mit dieser Konstellation erhalte ich folgenden Stack-Trace
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from int[] to int
Type mismatch: cannot convert from int[] to int
Type mismatch: cannot convert from int[] to int
at com.excample.TestDisassembler.main(TestDisassembler.java:11)
Eigentlich will ich das zurückgegebene Array in die dazugehörigen Einzelteile zerlegen. Irgendwie habe ich hier noch einen Denkfehler. Bzw. mich interessiert auch, ob eine Möglichkeit gibt, LocalDate direkt ein Datum als String zu übergeben, dann wäre diese Methode überflüssig.
Grüße
Sherry
Zuletzt bearbeitet von einem Moderator: