# GregorianCalendar



## Guest (1. Jun 2005)

So bekomme ich die Zeit:

```
GregorianCalendar calendar = new GregorianCalendar();
    DateFormat df = new SimpleDateFormat("HH-mm-ss");
    Date date2 = calendar.getTime();
    Zeit = df.format(date2);
```

Doch wie in HerrGotts Namen bekomme ich das Datum und zwar nur das Datum im Format ("YYYY-MM-DD")?????


----------



## stev.glasow (1. Jun 2005)

Ist das dein ernst? 

 new SimpleDateFormat("YYYY-MM-DD");

Irgendwie hast du dir die Frage selber beantwortet.


----------



## Guest (1. Jun 2005)

Naja, irgendwie fehlt mir da ein Puzzlestück.

Mit dem Erstellen des SimpleDateFormat-Objektes allein bekomme ich noch kein Datum. Ich muss doch eine Methode aufrufen, die mir das Datum zurückgibt. Wahrscheinlich stehe ich vollkommen auf der Leitung, aber ich habe keinen Schimmer wo ich ansetzen soll.

danke


----------



## Sky (1. Jun 2005)

Das heißt Du hast den Code kopiert und nicht verstanden??


```
// Dein Format
DateFormat df = new SimpleDateFormat("YYYY-MM-DD"); 
// Hier wird die Zeit ermittelt
Date date2 = calendar.getTime(); 
// Hier wird die ermittelte Zeit formatiert
Zeit = df.format(date2);
```


----------



## Guest (1. Jun 2005)

Nein, Nein, Nein.

Da stimmt was nicht!!

Mit der Methode getTime kann ich nur die aktuelle Zeit (Uhrzeit) abrufen. Ich aber will das Datum wissen! Ich kann doch nicht einfach nur das Muster bei SimpleDateFormat auswechseln und dann denken, dass er mir genau das zurückgibt was ich erhoffe.

Also:
Bei meiner Ersten Fragestellung habe ich Code angeführt der funktioniert. Was ich nun möchte ist eine Ausgabe des Datums in der Form ("YYYY-MM-DD"). Was ich nicht finde oder einfach mangels Intelligenz nicht schaffe, ist es, die dazugehörige Methode aus GregorianCalendar zu finden.

Was verstehe ich denn falsch?

danke


----------



## perdian (1. Jun 2005)

Anonymous hat gesagt.:
			
		

> Mit der Methode getTime kann ich nur die aktuelle Zeit (Uhrzeit) abrufen.


Falsch!

Ein Date Objekt enthält immer Zeit *und* Datum.



			
				Anonymous hat gesagt.:
			
		

> Ich kann doch nicht einfach nur das Muster bei SimpleDateFormat auswechseln und dann denken, dass er mir genau das zurückgibt was ich erhoffe.


Wieso probierst du es denn nicht einfach mal aus?



			
				Anonymous hat gesagt.:
			
		

> Was ich nicht finde oder einfach mangels Intelligenz nicht schaffe, ist es, die dazugehörige Methode aus GregorianCalendar zu finden.


Vielleicht solltest du mal irgendwo ein Tutorial ansehen, in dem generell über Datumsdarstellung und -formatierung etwas geschrieben steht.


----------



## Guest (1. Jun 2005)

Ich hab es doch versucht. Er wirf mir auch eine Exception:

```
java.lang.IllegalArgumentException: Illegal pattern character 'Y'
```


----------



## mic_checker (1. Jun 2005)

wie rufst du es denn auf?


----------



## Guest (1. Jun 2005)

Vollständiger Code:


```
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SystemZeit {
  public String Datum = null;
  public String Zeit = null;
  GregorianCalendar calendar;

  public SystemZeit() {
    calendar = new GregorianCalendar();
    this.Datum = Datum;
    this.Zeit = Zeit;

  }
  public String getAktuellesDatum() {   
    
    
    DateFormat af = new SimpleDateFormat("YYYY-MM-DD");
    Date date = calendar.getTime();
    String Datum = af.format(date);    
    

    
    String Year = Integer.toString(calendar.get(Calendar.YEAR));
    //Die Klasse Calendar fängt bei den Monaten mit 0 zu zählen an. Das heißt Januar wird dem Integerwert 0 zugewiesen.
    String Month = Integer.toString(calendar.get(Calendar.MONTH) + 1);
    String Day = Integer.toString(calendar.get(Calendar.DATE));

    //Die Variable Datum enstpricht dem aktuellen Tag laut Systemzeit
    Datum = Year + "-" + Month + "-" + Day;
//    System.out.println(Datum);
    return Datum;
  }

  public String getAktuelleZeit() {
    DateFormat df = new SimpleDateFormat("HH-mm-ss");
    Date date2 = calendar.getTime();
    Zeit = df.format(date2);    
    return Zeit;
  }
}
```


----------



## stev.glasow (1. Jun 2005)

Mach das Y mal klein.
hier gibst ne Übersicht:
http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html


----------



## Guest (1. Jun 2005)

So einfach ist es.

DAnke für den Link. Habe zwar selbst bereits nachgeguckt, hatte aber die Gross- und Kleinschreibung unterschätzt, da es ja unter " " (Anführungszeichen) steht.
War eine schwierige Geburt - Danke an allen die mir geholfen haben.

die von mir gewünschte Lösung lautet also:

```
DateFormat af = new SimpleDateFormat("yyyy-MM-dd");
    Date date = calendar.getTime();
    String Datum = af.format(date);
```


----------

