Java Datum a čas
Nejprve pochopíme parametry, které se skládají z a Datum.
Bude obsahovat především –
- Jedno rok (buď 2 nebo 4 číslice)
- Jedno měsíc (buď 2 číslicemi, prvními 3 písmeny měsíce nebo celým slovem měsíce).
- Jedno datum (bude to skutečné datum v měsíci).
- Jedno den (den v daném datu – např. Ne, Po, Út atd.)
Pokud jde o počítačové systémy, existuje poměrně mnoho parametrů, které lze použít ke spojení s datem. Uvidíme je v dalších částech tohoto tématu.
Zobrazit datum v Java
Nyní se podívejme, jak na to Java poskytněte nám 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 s datem pohrát.
Objekt Date můžete použít vyvoláním konstruktoru třídy Date následovně:
import java.util.Date;
class Date_Ex1 {
public static void main(String args[]) {
// Instantiate a Date object by invoking its constructor
Date 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 datum zobrazené ve výchozím formátu. Pokud chceme zobrazit datum a čas v jiném formátu, nejprve porozumějte Formátování data.
SimpleDateFormat: Analýza a formátování dat
Všichni jste se museli ve své školce učit abecedu….
Pojďme se nyní naučit ABC formátu data.
| Dopis | Složka data nebo času | Příklady |
|---|---|---|
| G | Označení éry | AD |
| y | Rok výroby | 2018 |
| M | Měsíc v roce | července nebo července nebo 07 |
| w | Týden v roce | 27 |
| W | 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 = Monday, …, 7 = neděle) | 1 |
| a | Značka dopoledne/odpoledne | PM |
| H | Hodina za den (0-23) | 0 |
| k | Hodina za den (1-24) | 24 |
| K | Hodina v dopoledních hodinách (0-11) | 0 |
| h | Hodina v dopoledních hodinách (1-12) | 12 |
| m | Minuta za hodinu | 30 |
| s | Druhý za minutu | 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 je všechny pamatovat, můžete je kdykoli odkázat, když 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ů.
Výše uvedené znaky můžete použít k určení formátu-
Například:
1) Požadovaný formát data: 2012.10.23 20:20:45 PST
Zadaný vhodný formát data bude - yyyy.MM.dd HH:mm:ss zzz
2) Požadovaný formát data:09:30:00 AM 23-May-2012
Zadaný vhodný formát data bude -hh:mm:ss a dd-MMM-yyyy
Tip: Pozor na velká písmena. Pokud zaměníte M s m, dostanete nežádoucí výsledky!
Pojďme se to naučit 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 objDate
System.out.println(objDate);
String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
}
}
Výstup:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Příklad porovnání dat
Nejužitečnější metodou porovnání dat je použití metody – CompareTo()
Pojďme se podívat 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-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2


