Datum in Tag, Monat, Jahr aufsplitten

L

lord_fritte

Erfahrenes Mitglied
7
Hallo, ich möchte ein Datum in Tag, Monat, Jahr aufsplitten, dazu verwendet ich folgenden einfachen Code:
Code:
Date datum = new Date();
int year = datum.getYear();
int month = datum.getMonth();
int day = datum.getDay();

in datum steht das richtige Datum drin: "Thu Nov 10 09:23:54 GMT+00:00 2011"
aber jetzt kommts:
year: 111
month: 10
day: 4
Aber warum?
 
weil derjenige der die java klasse Date gebaut hat, sich wohl irgendwas dabei gedacht hat. was genau, weiß ich nicht :D

das monat ist 0 basiert. => +1
den tag bekommst du über datum.getDate() - ohne witz :D
das jahr musst einfach +1900 rechnen

Dann bekommst du auch das richtige Datum :)

es gibt mit sicherheit nen besseren weg.
 
  • Danke
Reaktionen: lord_fritte
schau dir mal Calendar und SimpleDateFormat an, damit kannst du viel machen, auch wenns evtl. etwas mehr Aufwand ist ;-)
 
"Best preactice" in Java (allgemein, nicht nur Android) ist es, über den Calendar zu gehen.

Code:
Calendar cal = new GregorianCalendar();
cal.setTime(datum);
int year = cal.get( Calendar.YEAR );
int month = cal.get( Calendar.MONTH); // 0 based!
int day = cal.get( Calendar.DAY_OF_MONTH );
ADD: Ah, Tom299 hat Calendar auch schon erwähnt....

ADD:
@swordi, @lord_fritte: getMonth() und Konsorten sind seit 15 Jahren deprecated :D
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: sgs9000A
das geilste ist, dass monat 0 basiert ist.

wer hat sich dabei was gedacht ? :D
 
lord_fritte schrieb:
Hallo, ich möchte ein Datum in Tag, Monat, Jahr aufsplitten, dazu verwendet ich folgenden einfachen Code:
Code:
Date datum = new Date();
int year = datum.getYear();
int month = datum.getMonth();
int day = datum.getDay();

in datum steht das richtige Datum drin: "Thu Nov 10 09:23:54 GMT+00:00 2011"
aber jetzt kommts:
year: 111
month: 10
day: 4
Aber warum?

get.Day ist wohl der Wochentag, sorry, hat was gedauert bei mir ;-)
Will selbst nur ne kleine Anwendung bauen, wie bekomme ich das heutige Datum im "App Inventor" angezeigt bzw. diese Formel dort hinein, grübel??
Also echt doof wenn ich jetzt erst komplett Java dafür lernen müßte :blushing:
Kennt jemand ein Handbuch in deutsch, schäm, :bored:?

Edit: Wer suchet der findet.

Clock

Use a clock component to create a timer that signals events at regular intervals. The clock component also does various conversions and manipulations with time units.

One use of the clock component is a a timer: set the timer interval, and the timer will fire repeatedly at the interval, signalling a timer event.

A second use of the clock component is to manipulate time, and express time in various units. The internal time format used by the clock is called an instant. The clock's Now method returns the current time as an instant. The clock provides methods to manipulate instants, for example, return an instant that is several seconds, or months, or years from the given instant. It also provides methods to show the second, minute, hour, day, …, corresponding to a given instant.

Leider für mich, alles auf english :-(
 
Zuletzt bearbeitet:
DieGoldeneMitte schrieb:
"Best preactice" in Java (allgemein, nicht nur Android) ist es, über den Calendar zu gehen.

Code:
Calendar cal = new GregorianCalendar();
cal.setTime(datum);
int year = cal.get( Calendar.YEAR );
int month = cal.get( Calendar.MONTH); // 0 based!
int day = cal.get( Calendar.DAY_OF_MONTH );
ADD: Ah, Tom299 hat Calendar auch schon erwähnt....

ADD:
@swordi, @lord_fritte: getMonth() und Konsorten sind seit 15 Jahren deprecated :D

Calendar deswegen, weil Datum land/kulturspezifisch ist. Dafür unterstützt Calendar allerlei exotische Varianten. In Europa und Amerika gilt der gregorianische...
Die Calendar Klasse macht das ganze nicht umständlicher, sondern flexibler
 
Und warum nicht gleich:

Code:
Calendar c = Calendar.getInstance();

Das macht es noch dynamischer ;)
 
  • Danke
Reaktionen: DieGoldeneMitte
swordi schrieb:
das geilste ist, dass monat 0 basiert ist.

wer hat sich dabei was gedacht ? :D

Ich sage nur month_names[idx].

Übrigens gibt es auch noch einen Monat namens UNDECIMBER :D

@v_Ralle_v oha, den kannte ich noch nicht :)
 
Kein Ding :) Noch als Anmerkung: in den Beispielprogrammen wird der Aufruf auch immer verwendet (Android Doku), zum Beispiel beim AlarmManager.
 

Ähnliche Themen

R
Antworten
9
Aufrufe
713
koje71
koje71
D
Antworten
23
Aufrufe
2.383
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.922
OnkelLon
OnkelLon
Zurück
Oben Unten