Gå til innhold

Anbefalte innlegg

Jeg skal registrere en dato fra et JTextField, og er veeeeldig usikker på hvordan jeg best skal gjøre det. Jeg har skjønt at java.util.Date er utdatert og at jeg skal bruke andre klasser istedet. Problemet er at jeg finner ikke ut hvilken. Datoen fra JTextFieldet skal inn i en database, så jeg tenker litt på java.sql.Date, men den vil ha en long i konstruktør. Hvordan konverterer jeg Streng 08102972 til en long?

Lenke til kommentar
Videoannonse
Annonse
Hei

 

java.util.Date er stort sett byttet ut med java.util.Calendar

 

Vennlig hilsen

Hv

6084328[/snapback]

 

Jeg ble vel ikke særlig klokere.

 

Men la meg se om jeg kan forklare ved hjelp av et eksempel.

 

Jeg har String date="08101972"

Av dette skal jeg lage en dato som kan regnes med (finne ut om differansen mellom dato1 og dato2 er større enn 6 år)

 

Jeg kan lage et GregorianCalendar-objekt av String date, ved hjelp av substring (tre deler) og Integer.parseInt(), men hva gjør jeg så med mitt gregorianCalendar-objekt?

 

Jeg skal putte det inn i en database, med sql-formatet date (dvs på formen yyyy-mm-dd), så kanskje ikke GregorianCalendar likevel er det beste valget for format.

 

Jeg HAR forsøkt å lese api'en, men for å si det rett ut: Jeg er blondine og skjønner lite av den :(

 

Altså, jeg har en streng, "08101972" og skal konvertere den til '1972-10-08', slik at jeg kan putte den inn i en database.

 

 

Så hva er egentlig mine alternativer? Behøver jeg å bruke GregorianCalendar eller kan jeg bare konvertere streng 08101972 til streng 1972-10-08 og bruke mysql til å regne med disse datoene? (det vet jeg nemlig går)

Lenke til kommentar
Hei

 

java.util.Date er stort sett byttet ut med java.util.Calendar

 

Vennlig hilsen

Hv

6084328[/snapback]

 

Jeg ble vel ikke særlig klokere.

 

Men la meg se om jeg kan forklare ved hjelp av et eksempel.

 

Jeg har String date="08101972"

Av dette skal jeg lage en dato som kan regnes med (finne ut om differansen mellom dato1 og dato2 er større enn 6 år)

 

Jeg kan lage et GregorianCalendar-objekt av String date, ved hjelp av substring (tre deler) og Integer.parseInt(), men hva gjør jeg så med mitt gregorianCalendar-objekt?

 

Jeg skal putte det inn i en database, med sql-formatet date (dvs på formen yyyy-mm-dd), så kanskje ikke GregorianCalendar likevel er det beste valget for format.

 

Jeg HAR forsøkt å lese api'en, men for å si det rett ut: Jeg er blondine og skjønner lite av den :(

 

Altså, jeg har en streng, "08101972" og skal konvertere den til '1972-10-08', slik at jeg kan putte den inn i en database.

 

 

Så hva er egentlig mine alternativer? Behøver jeg å bruke GregorianCalendar eller kan jeg bare konvertere streng 08101972 til streng 1972-10-08 og bruke mysql til å regne med disse datoene? (det vet jeg nemlig går)

6090749[/snapback]

 

 

Jeg tror nok kanskje jeg ville brukt GregorianCalendar. Er vel det som er "in" :)

Lenke til kommentar
Jeg tror nok kanskje jeg ville brukt GregorianCalendar. Er vel det som er "in" :)

6091415[/snapback]

 

Men finnes det enklere måte å konvertere String 08101972 til en gregorianCalendar enn slik?

private GregorianCalendar convertGregorianBirthDate(String birthDate){
 int day = Integer.parseInt(birthDate.substring(0,2));
 int month = Integer.parseInt(birthDate.substring(2,4));
 int year = Integer.parseInt(birthDate.substring(4));
 return new GregorianCalendar(year, month, day);
}

 

Og jeg må konvertere denne før jeg setter den inn i databasen også... Og der ser jeg neste utfordring komme.

Lenke til kommentar

Hei

 

Slik kan du opprette java.sql.Date:

Calendar calendar = new GregorianCalendar(2006, 5, 12);
java.sql.Date date = new java.sql.Date(calendar.getTime().getTime());

 

Du kan også konvertere strengen "08101972" til "19701008", dette går også greit. Mange fordeler med engelske datoer.

 

Tror jeg trenger å vite litt mer spesifikt om problemstillingen din. Nøyaktig hva er det du skal gjøre og er det objekter du må bruke?

 

Vennlig hilsen

HV

Lenke til kommentar
Hei

 

Slik kan du opprette java.sql.Date:

Calendar calendar = new GregorianCalendar(2006, 5, 12);
java.sql.Date date = new java.sql.Date(calendar.getTime().getTime());

 

Du kan også konvertere strengen  "08101972" til "19701008", dette går også greit. Mange fordeler med engelske datoer.

 

Tror jeg trenger å vite litt mer spesifikt om problemstillingen din. Nøyaktig hva er det du skal gjøre og er det objekter du må bruke?

 

Vennlig hilsen

HV

6091450[/snapback]

 

 

Supert!

Tusen takk, hvordan konverterer jeg andre veien?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...