Avatar billede trp79 Nybegynder
09. februar 2003 - 15:21 Der er 10 kommentarer og
1 løsning

Date, how to samt converting fra og til Date

Jeg tilføjer nogle objekter i en arraylist (fliste)

eks:
fliste.add(new Forestilling (F4, 11, P3));

Mit problem er at jeg gerne vil tilføje dato og tid for en forestilling, altså så det kommer til at se nogenlunnde sådan her ud
fliste.add(new Forestilling (F4, 11, P3, 30-Feb-2003 11:25:56));

1) Hvordan gør jeg dette?

2) Når jeg så skal lave en søgning på datoen, kan man så bruge de almindelig operatorer(<,>,=)?

3) hvordan converter jeg en streng til en dato af det format jeg ønsker.

Mvh
Torben
Avatar billede arne_v Ekspert
09. februar 2003 - 15:36 #1
Det kan gøre spå mange måder.

En måde er:
  - tilføj et felt af type java.util.Date til Forestilling
  - kald med en String
  - i Forestilling's  constructor bruger du en SimpleDateFormat og
    et parse kald til at konvertere fra String til Date
Avatar billede arne_v Ekspert
09. februar 2003 - 15:37 #2
Det dækkede vist #1 og #3.

#2 er imidlertrid også løst da du kan sammenligne java.util.Date'er
direkte.
Avatar billede arne_v Ekspert
09. februar 2003 - 15:47 #3
Det ved du sikkert, men for en sikkerheds skyld: da Date er
et objekt kan du ikke bruge =<> men skal bruge compareTo metoden
i klassen.
Avatar billede Slettet bruger
09. februar 2003 - 16:01 #4
Date er depricated. Så måske skulle man bruge calender i stedet. Der er vel ingen garanti for at date er med i kommende udgaver af java.
Avatar billede arne_v Ekspert
09. februar 2003 - 16:03 #5
jjust>

Date er *ikke* deprected.

4 af constructor'erne i Date er deprecated. Inklusive den der
konverterer fra streng.

Men jeg forslår jo netop brug af SimpleDateFormat parse for
at undgå at bruge den.
Avatar billede trp79 Nybegynder
09. februar 2003 - 16:05 #6
Hvordan kunne 1) og 3)se ud i mit tilfælde?
jeg har desværre ingen erfaring med date, så jeg er helt blank :o(

Har søgt lidt har på exp. men det er ikke til at finde rundt hvad folk mener man skal bruge og hvad man ikke skal bruge. Jeg kunne godt bare tænke mig at starte med noget simpelt...
Avatar billede arne_v Ekspert
09. februar 2003 - 16:11 #7
OK. Jeg prøver lige at lave et lille eksempel.
Avatar billede trp79 Nybegynder
09. februar 2003 - 16:13 #8
Det lyder godt! :o)
Avatar billede arne_v Ekspert
09. februar 2003 - 16:21 #9
Her er et eksempel som bruger SimpleDateFormat parse i
constructor:

package test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Forestilling {
    private int fi;
    private String fs;
    private Date d;
    private DateFormat df = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
    public Forestilling(int fi, String fs, String d) {
        this.fi = fi;
        this.fs = fs;
        try {
            this.d = df.parse(d);
        } catch (ParseException e) {
        }
    }   
    public String toString() {
        return (fi + " " + fs + " " + d + " " + df.format(d));
    }

    public static void main(String[] args) {
        Forestilling f1 = new Forestilling(1, "AAA", "30-Feb-2003 11:25:56");
        System.out.println(f1);
        Forestilling f2 = new Forestilling(2, "BBBBB", "09-Feb-2003 16:15:00");
        System.out.println(f2);
    }
}

(jeg har tilføjet et par "tilfældige" felter mere i klassen - jeg regner
med at du allerede har styr på hvad der skal være udover Date)
Avatar billede arne_v Ekspert
09. februar 2003 - 16:24 #10
Med en lile sammenligning til sidst:

package test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Forestilling {
    private int fi;
    private String fs;
    private Date d;
    private DateFormat df = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
    public Forestilling(int fi, String fs, String d) {
        this.fi = fi;
        this.fs = fs;
        try {
            this.d = df.parse(d);
        } catch (ParseException e) {
        }
    }
    public String toString() {
        return (fi + " " + fs + " " + d + " " + df.format(d));
    }
    public Date getD() {
        return d;
    }

    public static void main(String[] args) {
        Forestilling f1 = new Forestilling(1, "AAA", "30-Feb-2003 11:25:56");
        System.out.println(f1);
        Forestilling f2 = new Forestilling(2, "BBBBB", "09-Feb-2003 16:15:00");
        System.out.println(f2);
        if (f1.getD().compareTo(f2.getD()) == 0) {
            System.out.println("=");
        } else if (f1.getD().compareTo(f2.getD()) < 0) {
            System.out.println("<");
        } else if (f1.getD().compareTo(f2.getD()) > 0) {
            System.out.println(">");
        }
    }
}
Avatar billede trp79 Nybegynder
09. februar 2003 - 16:43 #11
Det virker jo helt forrygende, jeg takker Arne :o)
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