Avatar billede lasse_hyldal Nybegynder
09. maj 2002 - 12:35 Der 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
Avatar billede kama Nybegynder
09. maj 2002 - 13:03 #1
Date datoFraDB = ........
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
Date nydato = formatter.format(datoFraDB);
Avatar billede lasse_hyldal Nybegynder
09. maj 2002 - 13:20 #2
Hvilke pakker skal jeg importere for at køre den. Er Java.SQL.*; nok?
Avatar billede bearhugx Nybegynder
09. maj 2002 - 13:28 #3
SimpleDateFormat kræver også
  import java.text.*;

Hvis du slår op i API'en kan du se, at SimpleDateFormat hører til den package - derfor skal den importeres.....

/Søren
Avatar billede lasse_hyldal Nybegynder
09. maj 2002 - 13:43 #4
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.
Avatar billede bearhugx Nybegynder
09. maj 2002 - 13:54 #5
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!
{}

---------------------------------------

/Søren
Avatar billede lasse_hyldal Nybegynder
09. maj 2002 - 14:57 #6
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");}
Avatar billede bearhugx Nybegynder
09. maj 2002 - 22:39 #7
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 :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester