V tomto výučbe sa dozviete -
- Zobraziť aktuálny dátum v Jave
- SimpleDateFormat: Analýza a formátovanie dátumov
- Príklad porovnania dátumov
Najprv pochopíme parametre, ktoré pozostávajú z dátumu .
Bude obsahovať predovšetkým -
- Rok (v 2 alebo 4 číslice)
- Mesiac (buď 2 číslice, prvé 3 písmená mesiaca alebo celé slovo v mesiaci).
- Dátum (to bude aktuálny deň v mesiaci).
- Deň (deň v danom dni - rovnako ako slnko, po, ut, atď)
Pokiaľ ide o počítačové systémy, existuje pomerne veľa parametrov, ktoré možno použiť na priradenie k dátumu. Uvidíme ich v ďalších častiach tejto témy.
Zobraziť dátum v Jave
Teraz sa pozrime, ako nám Java poskytuje Dátum. Najprv uvidíme, ako získať aktuálny dátum -
Java poskytuje triedu Date v rámci balíka java.util. Balík poskytuje niekoľko metód, ako sa pohrať s dátumom.
Objekt Date môžete použiť vyvolaním konštruktora triedy Date nasledovne:
import java.util.Date;class Date_Ex1 {public static void main(String args[]) {// Instantiate a Date object by invoking its constructorDate objDate = new Date();// Display the Date & Time using toString()System.out.println(objDate.toString());}}
Výkon:
Wed Nov 29 06:36:22 UTC 2017
Vo vyššie uvedenom príklade je dátum zobrazený v predvolenom formáte. Ak chceme zobraziť dátum a čas v inom formáte, prečítajte si najskôr Formátovanie dátumu.
SimpleDateFormat: Analýza a formátovanie dátumov
Všetci ste sa určite museli naučiť abecedy vo svojej materskej škole
….Poďme sa teraz naučiť ABC formátu dátumu.
List | Zložka dátumu alebo času | Príklady |
---|---|---|
G | Označenie éry | AD |
r | Rok | 2018 |
M | Mesiac v roku | Júl alebo júl alebo 07 |
w | Týždeň v roku | 27 |
Ž | Týždeň v mesiaci | 2 |
D | Deň v roku | 189 |
d | Deň v mesiaci | 10 |
F | Deň v týždni v mesiaci | 2 |
E | Meno dňa v týždni | Utorok alebo utorok |
u | Počet dní v týždni (1 = pondelok, ..., 7 = nedeľa) | 1 |
a | Značka dopoludnia / hod | POPOLUDNIE |
H | Hodina v deň (0 - 23) | 0 |
k | Hodina v deň (1 - 24) | 24 |
K | Hodina v am / pm (0-11) | 0 |
h | Hodina v am / pm (1-12) | 12 |
m | Minúta za hodinu | 30 |
s | O chvíľu druhý | 55 |
S | Milisekunda | 978 |
z | Časové pásmo | Tichomorský štandardný čas; PST; GMT-08: 00 |
Z | Časové pásmo | -0800 |
X | Časové pásmo | -08 alebo -0800 alebo -08: 00 |
Nebojte sa, nemusíte si pamätať všetky tieto skutočnosti, môžu byť kedykoľvek odoslané, keď potrebujete naformátovať konkrétny dátum.
Ako používať SimpleDateFormat?
Java poskytuje triedu nazvanú SimpleDateFormat, ktorá vám umožňuje formátovať a analyzovať dáta podľa vašich požiadaviek.
Pomocou vyššie uvedených znakov môžete určiť formát - Napríklad:
1) Požadovaný formát dátumu: 2012.10.23 20:20:45 PST
Príslušný zadaný formát dátumu bude rrrr.MM.dd HH: mm: ss zzz
2) Vyžaduje sa formát dátumu: 23. mája 2012 o 9:30:00
Príslušný zadaný formát dátumu bude : hh: mm: ss a dd-MMM-rrrr
Tip: Pri veľkých písmenách buďte opatrní. Ak si pomýlite M s m, budete mať nežiaduce výsledky!
Naučme sa to na príklade kódu.
import java.text.SimpleDateFormat;import java.util.Date;class TestDates_Format {public static void main(String args[]) {Date objDate = new Date(); // Current System Date and time is assigned to objDateSystem.out.println(objDate);String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is SpecifiedSimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format objectSystem.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date}}
Výkon:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
Príklad porovnania dátumov
Najužitočnejšou metódou porovnania dátumov je použitie metódy - compareTo ()
Pozrime sa na nasledujúci úryvok kódu:
import java.text.SimpleDateFormat;import java.text.ParseException;import java.util.Date;class TestDates_Compare {public static void main(String args[]) throws ParseException {SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");Date dt_1 = objSDF.parse("20-08-1981");Date dt_2 = objSDF.parse("12-10-2012");System.out.println("Date1 : " + objSDF.format(dt_1));System.out.println("Date2 : " + objSDF.format(dt_2));if (dt_1.compareTo(dt_2)> 0) {System.out.println("Date 1 occurs after Date 2");} // compareTo method returns the value greater than 0 if this Date is after the Date argument.else if (dt_1.compareTo(dt_2) < 0) {System.out.println("Date 1 occurs before Date 2");} // compareTo method returns the value less than 0 if this Date is before the Date argument;else if (dt_1.compareTo(dt_2) == 0) {System.out.println("Both are same dates");} // compareTo method returns the value 0 if the argument Date is equal to the second Date;else {System.out.println("You seem to be a time traveller !!");}}}Výkon:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2