"Jeg huskede, at jeg ville fortælle dig lidt om arbejdet med datoer."

"Du har allerede fortalt mig, at Java har Date-klassen, og jeg kan bruge den klasse til at arbejde med datoer."

"Hmm. Nå, Dato-klassen har været forældet i et stykke tid."

"Nu anbefales det i stedet at bruge klassen Calendar, som har en getTime() metode, der returnerer den aktuelle dato."

"Dette er et kalenderobjekt, der normalt oprettes:"

Opret et kalenderobjekt
Calendar cal = Calendar.getInstance();

"Når du kalder denne metode, oprettes den korrekte kalender baseret på dine computerindstillinger."

"Den 'korrekte' kalender? Betyder det, at der er flere?"

"Jep. Nå, det ville være mere præcist at sige 'relevant'. Faktum er, at Jorden ikke har én, men mange kalendere. Næsten hver eneste af dem er forbundet med en religion eller et land."

"Året kan være anderledes afhængigt af hvilket land du er i."

"Her er eksempler på de mest almindelige kalendere."

Kalender klasse Kalendernavn
gregoriansk kalender Kristen gregoriansk kalender
Buddhistisk kalender Buddhistisk kalender
JapaneseImperial Calendar Japansk kejserlig kalender

"Der er også den kinesiske kalender, islamisk kalender og mange flere."

"Jeg ser."

"For at få den aktuelle dato skal du skrive kode som denne:"

Få det aktuelle tidspunkt
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

"Kalender-klassen har mange metoder, der lader dig hurtigt få oplysninger om en dato og et klokkeslæt."

Kode Kommentarer
Calendar calendar = Calendar.getInstance();

int era = calendar.get(Calendar.ERA);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
æra 
år 
måned 
dag i måneden

ugedag (man, tirsdag, ons, …)
time 
minut 
sekund

"Nogle gange behøver du virkelig kun at få en del af den tilgængelige information. For eksempel det aktuelle år eller ugedag."

"Men nogle gange er du simpelthen nødt til at vise datoen i det rigtige format."

"For eksempel i logfilen eller et andet sted."

"Eller lav et format, som brugeren kan tilpasse. Hvad gør man så?"

"Der er også specielle klasser til dette. SimpleDateFormat- klassen er perfekt egnet til den opgave, du beskrev:"

Sådan vises en dato i det ønskede format
Calendar calendar = Calendar.getInstance();

DateFormat formatter = new SimpleDateFormat("MM-DD-YY");

String message = formatter.format(calendar.getTime());

"Ah. Jeg kan huske. Du har allerede forklaret noget om SimpleDateFormat for mig, men jeg kan ærligt talt ikke huske meget."

"Det hele er meget simpelt. Du opretter et SimpleDateFormat- objekt og sender det det datomønster, du ønsker at få. Så kalder du formatmetoden, og det giver dig den passerede dato i den ønskede form."

"Lyder interessant. Jeg vil gerne have flere detaljer."

"Her du går. Detaljerne. Her er nogle af de bogstaver, der kan bruges i datomønsteret:"

Brev Beskrivelse
G Erstattet af æraen (AD eller BC)
y Udskiftet med årstal
M Erstattet af måneden
w Antal uger i året
W Antal uger i måneden
D Antal dage i året
d Dag i måneden
F Ugedag i måneden
E Dag i ugen
-en AM/PM (før eller efter middag)
H Time i 24-timers format (0-23)
k Time i 24-timers format (1-24)
K Time i 12-timers format (0-11)
h Time i 12-timers format (1-12)
m Referater
s Sekunder
S Millisekunder
z Tidszone, formateret som dette: Pacific Standard Time, PST
Z Tidszone, formateret som dette: -0800/td>

"Fedt! Det er næsten alt, hvad du har brug for."

"Der er stadig nogle nuancer forbundet med at gentage disse bogstaver."

"Hvis du skriver YY, får du de sidste to cifre i året. Hvis du skriver YYYY, får du alle fire cifre i året."

"Der er også en vis kompleksitet med måneder. MM er månedens nummer. MMM er en forkortelse på tre bogstaver i måneden, dvs. Jan, Feb, Mar, Apr, Maj osv. MMMM står for månedens fulde navn ."

"Du kan også vise hele ugedagen (ved hjælp af EEEE) eller kun de to første bogstaver (ved hjælp af EE)."

"Tak, Rishi. Denne SimpleDateFormat-klasse er virkelig nyttig. Nu ved jeg det."

"Nyd at bruge det! Og held og lykke!"