V tomto výukovém programu se naučíte -
- Zobrazit aktuální datum v Javě
- SimpleDateFormat: Analyzovat a formátovat data
- Příklad porovnání dat
Nejprve pochopíme parametry, které se skládají z data .
Bude obsahovat především -
- Rok (v 2 nebo 4 číslice)
- Měsíc (buď 2 číslice, první 3 písmena měsíce nebo celé slovo v měsíci).
- Datum (to bude aktuální den v měsíci).
- Den (den v daném dni - stejně jako slunce, po, út, atd)
Pokud jde o počítačové systémy, existuje spousta parametrů, které lze použít k přiřazení k datu. Uvidíme je v dalších částech tohoto tématu.
Zobrazit datum v Javě
Nyní se podívejme, jak nám Java poskytuje Datum. Nejprve uvidíme, jak získat aktuální datum -
Java poskytuje třídu Date v rámci balíčku java.util. Balíček poskytuje několik metod, jak si pohrát s datem.
Objekt Date můžete použít vyvoláním konstruktoru třídy Date následujícím způsobem:
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ýstup:
Wed Nov 29 06:36:22 UTC 2017
Ve výše uvedeném příkladu je datum zobrazeno ve výchozím formátu. Pokud chceme zobrazit datum a čas v jiném formátu, nejprve pochopte Formátování data.
SimpleDateFormat: Analyzovat a formátovat data
Všichni jste se museli naučit abecedy ve své mateřské škole
….Pojďme se nyní naučit ABC formátu data.
Dopis | Složka data nebo času | Příklady |
---|---|---|
G | Éra označení | INZERÁT |
y | Rok | 2018 |
M | Měsíc v roce | Červenec nebo červenec nebo 07 |
w | Týden v roce | 27 |
Ž | Týden v měsíci | 2 |
D | Den v roce | 189 |
d | Den v měsíci | 10 |
F | Den v týdnu v měsíci | 2 |
E | Název dne v týdnu | Úterý nebo úterý |
u | Číslo dne v týdnu (1 = pondělí,…, 7 = neděle) | 1 |
A | Značka dopoledne / odpoledne | ODPOLEDNE |
H | Hodina dne (0-23) | 0 |
k | Hodina za den (1-24) | 24 |
K. | Hodina v am / pm (0-11) | 0 |
h | Hodina v am / pm (1-12) | 12 |
m | Minuta za hodinu | 30 |
s | Za minutu druhý | 55 |
S | Milisekunda | 978 |
z | Časové pásmo | Tichomořský standardní čas; PST; GMT-08: 00 |
Z | Časové pásmo | -0800 |
X | Časové pásmo | -08 nebo -0800 nebo -08: 00 |
Nebojte se, nemusíte si pamatovat všechny tyto, lze je odkázat kdykoli potřebujete naformátovat konkrétní datum.
Jak používat SimpleDateFormat?
Java poskytuje třídu nazvanou SimpleDateFormat, která vám umožňuje formátovat a analyzovat data podle vašich požadavků.
K určení formátu můžete použít výše uvedené znaky - například:
1) Požadovaný formát data: 2012.10.23 20:20:45 PST
Příslušný zadaný formát data bude rrrr.MM.dd HH: mm: ss zzz
2) Je vyžadován formát data: 23. května 2012 v 9:30:00
Příslušný zadaný formát data bude : hh: mm: ss a dd-MMM-rrrr
Tip: Buďte opatrní při psaní velkých písmen. Pokud si mýlíte M s m, budete mít nežádoucí výsledky!
Naučme se to na příkladu 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ýstup:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
Příklad porovnání dat
Nejužitečnější metodou porovnání dat je použití metody - compareTo ()
Podívejme se na níže uvedený fragment 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ýstup:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2