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
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.