09. maj 2002 - 12:35Der er
5 kommentarer og 2 løsninger
SimpleDateFormater
Hvordan bruger jeg SimpleDateFormater, når jeg skal formatere en dato jeg har hentet i min database, før jeg udskriver den? Jeg skal med andre ord kun udskrive 01-01-2002 og ikke 01-01-2002 00:00:00. Det samme spørgsmål gælder for et tidspunkt, hvis jeg ikke skal udskrive dato. Hvad skal jeg så bruge? Kom gerne med eksempler
Date Dato= rs.getString("Dato"); SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); Date nyDato= df.format(Dato); Her er hvad jeg har skrevet, men jeg får stadigvæk fejlmeddelelser.
For at fortolke en date, ud fra en string, skal du bruge SimpleDateFormats parse()-metode..... Den kaster dog ParseException, så den skal også kastes...
Jeg har skrevet koden nedenfor - Bemærk at jeg har ændret variablen "Dato" til "dato" - kun klasser og konstanter bør skrives med store bogstaver (jf. standarder)
Da "nyDate" referrencen skal laves inden try-catch-blokken er deklarationen ført lige op over try-udsagnet... Hvis noget går galt (en Exception bliver kastet) vil værdien af nyDate være den nuværende dato - Det kan dog ændres til noget andet ved at tilføje kode i catch-blokken
--------------------------------
Date dato = rs.getString("Dato"); SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); Date nyDate = new Date(); try { nyDate = df.parse(dato); } catch (ParseException pEx) //ignored! {}
Her er de fejlmeddelelser jeg får: C:\Dokumenter\Datalogi\Eksamensopgave\GUI\HovedMenuRek.java:209: incompatible types found : java.lang.String required: java.sql.Date Date dato= rs.getString("Dato"); ^ C:\Dokumenter\Datalogi\Eksamensopgave\GUI\HovedMenuRek.java:211: cannot resolve symbol symbol : constructor Date () location: class java.sql.Date Date nyDato = new Date(); ^ C:\Dokumenter\Datalogi\Eksamensopgave\GUI\HovedMenuRek.java:214: cannot resolve symbol symbol : method parse (java.sql.Date) location: class java.text.SimpleDateFormat nyDato = df.parse(dato);
Og her er koden: Date dato= rs.getString("Dato"); SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); Date nyDato = new Date(); try { nyDato = df.parse(dato); } catch (ParseException pEx) //ignored! {System.out.println("fanget");}
rs.getString vil returnere en String - derfor skal den også gemmes i en String.
Din kode bør rettes til :
String dato = rs.getString("Dato"); SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); Date nyDato = new Date(); try { nyDato = df.parse(dato); } catch (ParseException pEx) { System.out.println("fanget"); }
/Søren
PS : "//ignored!"-kommentaren var til for at gøre opmærksom på, at der ikke var nogen exception-behandling - Nu, hvor du System.out'er, har jeg fjernet kommentaren :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.