String in Datum umwandeln

ramzymamzy

Mitglied
Hallo,

ich ziehe ein Datum aus meiner property datei in die Variable valueA.
Dies mache ich mit: String valueA = myResources.getString("valueA");
Da dies leider ein String ist und ich ein Datum brauche muss dies umformatiert werden.
Hat jemand eine Lösung? Bitte das formatieren in eine funtion auslagern und nicht in die main klatschen das macht mich sonst traurig :(

Danke im Vorraus!
ramzymamzy
 
Dafür gibt's ein ganz neckische Klasse:

Code:
String s = "28.04.1988"; 
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date d = sdf.parse(s);
 
hi nicht ganz so wie ich es gerne hätte!

try {
// Create a result set containing all data from my_table
try {
String valueA = myResources.getString("valueA");
String valueB = myResources.getString("valueB");
System.out.println(valueA);
System.out.println(valueB);

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");

Date von = sdf.parse(valueA);
Date bis = sdf.parse(valueB);

System.out.println(von);
System.out.println(bis);
}

catch(ParseException e){
}

derzeitige ausgabe:
02.04.2003 -> will das es so als datums objekt umgewandelt wird!
11.99.9999
Wed Apr 02 00:00:00 CEST 2003
Sun Mar 11 00:00:00 CET 10007

kann bitte jemand weiterhelfen?
 
Ich denke Du willst ein Date-Objekt?

Deine Ausgabe ist die "toString()"-Methode, die natürlich in einem für uns Deutschen unbrauchbaren Format ausgegeben wird!

Rückumwandlung:
Code:
String s = sdf.format(d);
 
try {
// Create a result set containing all data from my_table
try {
String valueA = myResources.getString("valueA");
String valueB = myResources.getString("valueB");
// String s = sdf.format(d);
System.out.println(valueA);
System.out.println(valueB);

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");

Date von = sdf.parse(valueA);
Date bis = sdf.parse(valueB);

valueA = sdf.format(von);
valueB = sdf.format(bis);

System.out.println(valueA);
System.out.println(valueB);
}

catch(ParseException e){
}

ausgabe:
02.04.2003
02.12.2003
02.04.2003
02.12.2003


meinst du es so? also valueA hat jetzt den richtigen wert drin! aber ist es auch ein date-objekt? weil mit valueA und valueB setzt ich ne SQL abfrage auf eine Datenbank ab und bekomme keine ausgabe zurück! bitte helfen! =)
 
Hallo,

lass dir doch mal den SQL ausgeben, wenn du da keinen Fehler findest (z.B. fehlende Hochkomma), dann poste doch mal den SQL-String
 
Zuletzt bearbeitet:
public ResultSet showMailqueuebyDate(Connection theConnection){

ResourceBundle myResources =
PropertyResourceBundle.getBundle("Result");

ResultSet rs = null;

try {
// Create a result set containing all data from my_table
try {
String valueA = myResources.getString("valueA");
String valueB = myResources.getString("valueB");
// String s = sdf.format(d);
System.out.println(valueA);
System.out.println(valueB);

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");

Date von = sdf.parse(valueA);
Date bis = sdf.parse(valueB);

valueA = sdf.format(von);
valueB = sdf.format(bis);

System.out.println(valueA);
System.out.println(valueB);
}

catch(ParseException e){
}


//System.out.println(valueA);
//System.out.println(valueB);
Statement stmt = theConnection.createStatement();
rs = stmt.executeQuery("SELECT COUNT(*) FROM MAIL_QUEUE WHERE STOPPED BETWEEN valueA AND valueB");
System.out.println(rs);

// Fetch each row from the result set
while (rs.next()) {
String s = rs.getString("COUNT(*)");
System.out.println(s);
}
}

catch (SQLException e) {
}

return rs;
}

also hier meine methode findet jemand wieso er nichts zurück gibt von der SQL Abfrage?
Objekt habe ich in der main erzeugt:
ResultSet rs;
Result oResult = new Result();//Instanz
rs = oResult.showMailqueuebyDate(con);
 
Hallo,

der SQL kann nicht funktionieren, da du je kein Datum einsetzt.

richtig ist
Code:
rs = stmt.executeQuery("SELECT COUNT(*) FROM MAIL_QUEUE WHERE STOPPED BETWEEN '" + valueA + '" AND '" + valueB + "'");

PS: Bitte verwende das # -Symbol wenn du Sourcecode postest.
 
Zurück