Datumsausgabe

Status
Nicht offen für weitere Antworten.

b0unc3

Bekanntes Mitglied
also ich hab mal versucht mir den aktuellen Monat und den Tag ausgeben zu lassen (mit 2 verschiedenen methoden) . aber keine von beiden gibt mir das richtige aus:

Code:
import java.util.*;

public class TEST {
	public static void main(String[] args) {
		Date d = new Date();
		System.out.println("Monat: " + Calendar.MONTH); //aktueller monat
		System.out.println("Monat: " + d.getMonth()); //aktueller monat
		System.out.println("Tag: " + Calendar.DAY_OF_WEEK); //tag in der woche
		System.out.println("Tag: " + d.getDay()); //tag in der woche
	}
}

die ausgabe ist:

Monat: 2
Monat: 10
Tag: 7
Tag: 3

und da stimmt ja nix.. wir haben weder den 2ten noch den 10ten monat
und wir haben auch nicht den 7ten tag der woche.. das einzige was stimmt ist die
letzte zeile..

was muss ich denn machen damit ich auch die richtigen werte bekomme, oder hab ich in der api etwas falsch verstanden?

//NACHTRAG

bin da auf was gestoßen was ich auch nciht verstehe..
wenn ich das ganze jetzt so mache:

Code:
import java.util.*;
import java.sql.Date;

public class Test {
	public static void main(String[] args) {
		Date d = new Date(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_WEEK);
		System.out.println(d);
	}
}

bekomm ich folgende ausgabe:


aber das is doch schon n weilchen vorbei .. :bahnhof: ???:L
 

dieta

Top Contributor
Um das aktuelle Datum auszugeben, brauchst du einen GregorianCalendar. Date ist nur dazu da, ein Datum zu speichern. Calendar.YEAR etc. sind Konstanten, um die entsprechenden Felder abzufragen.
Richtig sähe das z.B. so aus:
Code:
GregorianCalendar cal = new GregorianCalendar(); //Hole dir das aktuelle Datum und die aktuelle Zeit
int year = cal.get(Calendar.YEAR); //Hole dir das YEAR-Feld des GregorianCalendars
int month = cal.get(Calendar.MONTH); //Hole dir das MONTH-Feld des GregorianCalendars
//...
 

L-ectron-X

Gesperrter Benutzer
Wenn es nur um die Ausgabe/Darstellung eines Datums geht, würde ich eher mit DateFormat arbeiten.
Code:
DateFormat df = new SimpleDateFormat("mm.dd.yyyy");
System.out.println(df.format(new Date()));

Edit: Sorry, hab die Pattern falsch gesetzt. Aber das kannst du ja auch aus der API-Doc entnehmen.
 

b0unc3

Bekanntes Mitglied
also es scheint irgendwie beides falsch zu seien..
beim GregorianCalendar ist die Ausgabe:
4.10.2006

und beim DateFormat:
01.07.2006
 
S

SlaterB

Gast
nun mal auf einen Code einigen:

was kommt hier raus?
Code:
		GregorianCalendar cal = new GregorianCalendar();
		int year = cal.get(Calendar.YEAR);
		int month = cal.get(Calendar.MONTH);
		int day = cal.get(Calendar.DAY_OF_MONTH);
		System.out.println(day + "." + month + "." + year);

		DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
		System.out.println(df.format(new Date()));

bei mir:
1.10.2006
01.11.2006


beim GregorianCalendar werden die Monate von 0-11 gezählt, nicht von 1-12,

beim Format ist es dagegen die 'verständlichere' Monatszählung für die Ausgabe, nicht die interne Verarbeitung,
aber Vorsicht beim SimpleDateFormat:
mm steht für Minuten,
MM für Monat,
 

b0unc3

Bekanntes Mitglied
ok so gehts danke:

1.10.2006
01.11.2006

//NACHTRAG:

kann ich mir damit auch die uhrzeit ausgeben lassen?

ok hat sich erledigt ich habs :p

hh bzw. HH und mm ;-) hab den rest deines beitrags erst nicht gelesen
 

dieta

Top Contributor
Das geht so:
Code:
      GregorianCalendar cal = new GregorianCalendar();
      int second = cal.get(Calendar.SECOND);
      int minute = cal.get(Calendar.MINUTE);
      int hour = cal.get(Calendar.HOUR_OF_DAY);
      System.out.println(hour + ":" + minute + ":" + second);

      DateFormat df = new SimpleDateFormat("HH:mm:ss");
      System.out.println(df.format(new Date()));
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben