Datum anlegen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datum anlegen

    Hallo zusammen,

    ich arbeite gerade an ein paar Übungsaufgaben zu Java und stoße dabei auf ein Problem.
    Die Klasse Mensch hat 2 Attribute, Name und Geburtstag. Geburtstag ist vom Typ Date.

    Jetzt will ich im Konstruktor angeben, dass ein Mensch Marc heißt und am 25.06.1988 geboren wurde.
    Allerdings kriege ich das irgendwie nicht hin, denn es kommt immer heraus, dass Marc am 01.01.1970 Geburtstag hat. :S

    Könnt ihr mir sagen wie man ein Datum "erstellt"? Da ich über Google nur einige Beispiele finden konnte, die nicht aktuell sind. (Einige Methoden von Date sind anscheinend nicht mehr anwendbar)
    Außerdem steht bei der Ausgabe des Datums immer eine Zeitangabe dabei, die ich nicht weg bekomme, könnt ihr mir dabei helfen?

    Mein Ansatz sieht folgendermaßen aus:

    Quellcode

    1. public void introduce(){
    2. System.out.println("Mein Name ist " + name + ", mein Geburtstag ist am " + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(birthday) + ".");
    3. }
    4. public static void main(String[] args) {
    5. Date date = new Date(06/25/88);
    6. Mensch m = new Mensch("Marc", date);
    7. m.introduce(); // Methode in der sich der "Mensch" mit seinem Alter vorstellt
    8. }
    Alles anzeigen
  • Schau dir mal den Konstruktor von Date an:
    Date(int year, int month, int day)

    -> Dh, du musst die Zahlen angaben durch ein Komma trennen: new Date(88, 6, 25)

    Beachte jedoch das dieser Konstructor als Deprecated, sprich veraltet markiert ist und in zukünftigen Java Versionen womöglich entfernt wird.

    Eine andere Möglichkeit wäre es diese Angabe aus einem String zu konstruieren:
    Date.valueOf("1988-06-25")

    Mfg Rushh0ur
  • Hi :)

    Jaja.. dieses Datums-Handling ist etwas nervig ;)

    Wie du richtig bemerkt hast, sind fast alle Methoden in der Klasse Date deprecated.
    Ein "einfacher" Weg ein Datum zu setzen, stellt die Klasse Calendar bzw. GregorianCalendar dar (was fürn toller Satz :D ).
    Calendar ist eine abstrakte Klasse welches es durch Subtypen (also Klassen die davon erben) erlaubt weitere Kalenderformen zu implementieren. Da wir aber sowieso den gregorianischen Kalende benutzen, kann uns das jetzt relativ egal sein ;)

    Wenn dein Marc also am 25.06.1988 geboren wurde, kannst du beispielsweise so ein Kalendar-Objekt erstellen:

    Quellcode

    1. Calendar myCal = new GregorianCalendar(1988,Calendar.JUNE,25);


    und wenn deine Methode unbedingt ein Date-Objekt haben möchte, kannst du dir aus dem Kalendar eins erstellen lassen:

    Quellcode

    1. myCal.getTime();



    Fertig ;)
  • Vielen, vielen Dank. :D

    Auf die Variante mit Calendar hätte ich eigentlich auch selber kommen können, verwende dies nämlich bereits in einer weiteren Methode.
    Naja, hatte mich so darin verkeilt...

    Aber mal weiter im Thema, meine Ausgabe bleibt dabei die Uhrzeit anzuzeigen. Wie kann ich das denn weglassen?
    Kann ich der Methode getDateTimeInstance() irgendwie sagen, dass ich nur den ersten Wert anzeigen will? Oder gibt es eine weitere Möglichkeit?

    Unter Google habe ich am häufigsten diese Variante gefunden, allerdings auch eine in der man mehr individuelle Formatierungen verwenden kann.
    Leider weiß ich diese nicht wirklich anzuwenden. Ohne Beispiele bin ich momentan noch etwas aufgeschmissen, wenns um Java geht. :S
  • Aaaah, schon okay. Habe es dann jetzt allein gelöst. Ist nur leider noch nicht besonders schick geworden.
    Habe meine Ausgabe gestringt, so dass ich die Zeit einfach abschneide. :whistling:

    Ich wäre natürlich trotzdem happy, eine ordentlichere Variante zu lernen. Falls jemand eine Idee hat.

    Gut,
    noch einmal vielen Dank für eure Hilfe! Wirklich super dass ihr mir so schnell helfen konntet. :thumbsup:

    HellBunny