Avatar billede bentblod Nybegynder
03. december 2003 - 21:58 Der er 8 kommentarer og
1 løsning

String(GregorianCalendar) til GregorianCalendar

Hej jeg har et problem, skal have min dato ud fra database, hvilket jeg får i String, den er blevet sat derind ved formatetet GregorianCalendar, og når jeg får den ud igen skal jeg lave den om til GregorianCalendar så jeg kan arbejde videre med den.. Men mangler metoden til det :( Har ellers kigget på om der var en metode til det herinde, men fandt kun en "Date" String til GregorianCalendar som jeg ikke rigtig fik til at virke i denne sammenhæng.. Ville blive meget glad hvis der var en herinde der gad hjælpe mig med det!
Tak på forhånd
Avatar billede arne_v Ekspert
03. december 2003 - 22:00 #1
Noget a la:

String s;
DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Date d = df.parse(s);
Calendar c = new GregorianCalendar();
c.setTime(d);
Avatar billede bentblod Nybegynder
03. december 2003 - 22:35 #2
Virker ikke rigtigt tror du har gjort som den metode jeg allerede kendte. At String ikke er GregorianCalendar format men Date format.
f.eks. har prøvet at skrive det ind sådan her, men fungere ikke :(

Calendar c = new GregorianCalendar(2003,2,2);
String s = "" + c.getTime();
java.text.DateFormat df = new java.text.SimpleDateFormat("dd-MM-YYYY");
Date d = df.parse(s);
Calendar c = new GregorianCalendar();
c.setTime(d);
System.out.println("" + c.getTime());

Virker ikke :/
Avatar billede arne_v Ekspert
03. december 2003 - 22:41 #3
Nej fordi formaterne ikke passer.

Der er 2 muligheder:

1)  rette SimpleDateFormat til så det passer med "standard formatet"

2)  bruge samme SimpleDateFormat også til output
Avatar billede arne_v Ekspert
03. december 2003 - 22:42 #4
#2 betyder:

String s = df.format(c.getTime());
Avatar billede arne_v Ekspert
03. december 2003 - 22:45 #5
#1 betyder:

DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
Avatar billede bentblod Nybegynder
03. december 2003 - 22:46 #6
Hmm forstår ikke lige hvad du mener.. Men String s = det samme som når man skriver en GregorianCalender ud bare hvor den står som String, ved ikke om man kan lave det om til date først og derefter tilbage til GregorianCalendar..
Så erfaring er jeg ikke i java endnu, men prøver da.. er bare gået lidt død i den her..
Avatar billede bentblod Nybegynder
03. december 2003 - 22:49 #7
Ok der fik du lige skrevet 2 beskeder, men ja er en kæmpe smørger den skriver ud, med både mon feb 2003:00:00 ect og noget andet.. har lige pakket bærbar sammen, så skriver imorgen hvad den præcist skriver ud.. :)
Avatar billede arne_v Ekspert
03. december 2003 - 22:50 #8
Prøv og kør dette eksempel som er lavet udefra din kode ovenfor:

import java.util.*;
import java.text.*;

public class T2 {
    private static DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    public static void main(String[] args) throws Exception {
        Calendar c = new GregorianCalendar(2003, Calendar.MARCH, 2);
        String s = df.format(c.getTime());
        System.out.println(s);
        Date d = df.parse(s);
        Calendar c2 = new GregorianCalendar();
        c2.setTime(d);
        System.out.println(c2.getTime());
    }
}
Avatar billede bentblod Nybegynder
04. december 2003 - 09:44 #9
Lækkert virker perfekt!! :) tak skal du have!!! 30 points til dig :)
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