"Jag kom ihåg att jag ville berätta lite om att jobba med dejter."

"Du har redan sagt till mig att Java har klassen Date, och jag kan använda den klassen för att arbeta med datum."

"Hmm. Tja, Date-klassen har varit föråldrad ett tag."

"Nu rekommenderas det att istället använda klassen Calendar, som har en getTime()-metod som returnerar det aktuella datumet."

"Detta är ett kalenderobjekt som vanligtvis skapas:"

Skapa ett kalenderobjekt
Calendar cal = Calendar.getInstance();

"När du anropar den här metoden skapas rätt kalender baserat på dina datorinställningar."

"Den 'rätta' kalendern? Betyder det att det finns flera?"

"Japp. Tja, det skulle vara mer korrekt att säga "relevant". Faktum är att jorden inte har en, utan många kalendrar. Nästan var och en av dem är förknippad med någon religion eller land."

"Året kan vara olika beroende på vilket land du befinner dig i."

"Här är exempel på de vanligaste kalendrarna."

Kalenderklass Kalendernamn
Gregorianska kalendern Kristen gregoriansk kalender
Buddhistisk kalender Buddhistisk kalender
JapaneseImperialCalendar Japanska kejserliga kalendern

"Det finns också den kinesiska kalendern, den islamiska kalendern och många fler."

"Jag förstår."

"För att få det aktuella datumet måste du skriva kod så här:"

Få aktuell tid
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

"Klassen Kalender har många metoder som låter dig snabbt få all information om ett datum och en tid."

Koda 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);
era 
år 
månad 
dag i månaden

veckodag (mån, tis, ons, …)
timme 
minut 
sekund

"Ibland behöver man egentligen bara få en del av tillgänglig information. Till exempel aktuellt år eller veckodag."

"Men ibland behöver man helt enkelt visa datumet i rätt format."

"Till exempel i loggfilen eller någon annanstans."

"Eller gör ett format som användaren kan anpassa. Vad gör man då?"

"Det finns speciella klasser för detta också. Klassen SimpleDateFormat är perfekt lämpad för uppgiften du beskrev:"

Hur man visar ett datum i önskat format
Calendar calendar = Calendar.getInstance();

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

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

"Ah. Jag kommer ihåg. Du har redan förklarat en del om SimpleDateFormat för mig, men jag minns ärligt talat inte så mycket."

"Det hela är väldigt enkelt. Du skapar ett SimpleDateFormat- objekt och skickar det datummönstret du vill ha. Sedan anropar du formatmetoden, och det ger dig passerat datum i önskad form."

"Låter intressant. Jag skulle vilja ha mer detaljer."

"Så här. Detaljerna. Här är några av bokstäverna som kan användas i datummönstret:"

Brev Beskrivning
G Ersatt av eran (AD eller BC)
y Ersatt av årtal
M Ersatt av månaden
w Antal veckor under året
W Antal veckor i månaden
D Antal dagar på året
d Dag i månaden
F Veckodag i månaden
E Veckodag
a AM/PM (före eller efter middagstid)
H Timme i 24-timmarsformat (0-23)
k Timme i 24-timmarsformat (1-24)
K Timme i 12-timmarsformat (0-11)
h Timme i 12-timmarsformat (1-12)
m Minuter
s Sekunder
S Millisekunder
z Tidszon, formaterad så här: Pacific Standard Time, PST
Z Tidszon, formaterad så här: -0800/td>

"Coolt! Det är precis allt du behöver."

"Det finns fortfarande några nyanser relaterade till att upprepa dessa bokstäver."

"Om du skriver YY får du årets två sista siffror. Om du skriver ÅÅÅÅ får du alla fyra siffrorna i året."

"Det finns också en viss komplexitet med månader. MM är månadens nummer. MMM är en trebokstavsförkortning av månaden, dvs. Jan, Feb, Mar, Apr, May, etc. MMMM står för månadens fullständiga namn ."

"Du kan också visa hela veckodagen (med EEEE) eller bara de två första bokstäverna (med EE)."

"Tack, Rishi. Den här SimpleDateFormat-klassen är verkligen användbar. Nu vet jag."

"Njut av att använda den! Och lycka till!"