Java Dátum és idő
Először értsük meg azokat a paramétereket, amelyek az a találka.
Elsősorban tartalmazni fogja –
- A év (2 vagy 4 számjegyből)
- A hónap (vagy 2 számjeggyel, a hónap első 3 betűje vagy a hónap teljes szava).
- A adat (ez a hónap tényleges dátuma lesz).
- A nap (az adott dátum szerinti nap – pl. V, H, K stb.)
Ami a számítógépes rendszereket illeti, meglehetősen sok paramétert lehet dátumhoz rendelni. A téma későbbi részeiben látni fogjuk őket.
Dátum megjelenítése Java
Most pedig lássuk, hogyan Java adja meg nekünk a dátumot. Először is meglátjuk, hogyan kapjuk meg az aktuális dátumot-
Java Dátum osztályt biztosít a java.util csomag alatt. A csomag számos módszert biztosít a dátummal való játékhoz.
A Date objektumot a Date osztály konstruktorának meghívásával használhatja az alábbiak szerint:
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()); } }
output:
Wed Nov 29 06:36:22 UTC 2017
A fenti példában a dátum alapértelmezett formátumban látható. Ha a dátumot és az időt más formátumban akarjuk megjeleníteni, először értse meg a dátum formázását.
SimpleDateFormat: Dátumok elemzése és formázása
Bizonyára mindenki megtanulta az ábécét az óvodában…
Most tanuljuk meg a dátumformátum ABC-jét.
Levél | Dátum vagy idő komponens | Példák |
---|---|---|
G | Korszakjelző | AD |
y | Év | 2018 |
M | Hónap az évben | július vagy július vagy 07 |
w | Hétről évre | 27 |
W | Hétről hónapra | 2 |
D | Nap az évben | 189 |
d | Nap a hónapban | 10 |
F | A hét napja a hónapban | 2 |
E | Nap neve a héten | kedd vagy kedd |
u | A hét napjának száma (1 = Monday, …, 7 = vasárnap) | 1 |
a | am/pm jelző | PM |
H | Napi óra (0-23) | 0 |
k | Napi óra (1-24) | 24 |
K | Délelőtt/dél óra (0-11) | 0 |
h | Délelőtt/dél óra (1-12) | 12 |
m | Perc az órában | 30 |
s | Második percben | 55 |
S | Miliszekundum | 978 |
z | Időzóna | csendes-óceáni szabványidő; PST; GMT-08:00 |
Z | Időzóna | -0800 |
X | Időzóna | -08 vagy -0800 vagy -08:00 |
Ne aggódjon, nem kell mindezekre emlékeznie, bármikor hivatkozhat rájuk, amikor egy adott dátumot kell formáznia.
Hogyan kell használni a SimpleDateFormat-ot?
Java egy SimpleDateFormat nevű osztályt biztosít, amely lehetővé teszi a dátumok formázását és elemzését az Ön igényei szerint.
A fenti karakterekkel megadhatja a formátumot-
Például:
1) Szükséges dátumformátum: 2012.10.23 20:20:45 PST
A megfelelő dátumformátum a következő lesz: éééé.hh.nn ÓÓ:pp:ss zzz
2) Szükséges dátumformátum:09:30:00 AM 23-May-2012
A megfelelő dátumformátum a következő lesz:óó:pp:ss egy nn-HH-éééé
Tipp: Legyen óvatos a nagybetűkkel. Ha összetéveszti M-et m-mel, nemkívánatos eredményeket fog elérni!
Tanuljuk meg ezt egy kódpéldával.
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 } }
output:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Dátumok összehasonlítása példa
A dátumok összehasonlításának leghasznosabb módja az összehasonlítás() módszer használata.
Vessünk egy pillantást az alábbi kódrészletre -
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 !!"); } } }
output:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2