U ovom vodiču naučit ćete -
- Prikaži trenutni datum u Javi
- SimpleDateFormat: Raščlanjivanje i formatiranje datuma
- Usporedite primjere datuma
Prvo shvatimo parametre koji se sastoje od datuma .
Prvenstveno će sadržavati -
- Godina (u bilo 2 ili 4 znamenke)
- Mjesec (u bilo 2 znamenke, prva 3 slova mjeseca ili cijela riječ u mjesecu).
- Datum (to će biti stvarni datum u mjesecu).
- Dana (dan na određeni datum - kao Sunce, pon, uto, itd)
Što se tiče računalnih sustava, postoji poprilično parametara koji se mogu koristiti za povezivanje s datumom. Vidjet ćemo ih u kasnijim dijelovima ove teme.
Prikaži datum u Javi
Sada da vidimo kako nam Java daje datum. Prvo ćemo vidjeti kako doći do trenutnog datuma -
Java pruža klasu Date u paketu java.util, paket nudi nekoliko metoda za poigravanje s datumom.
Objekt Date možete koristiti pozivanjem konstruktora klase Date na sljedeći način:
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());}}
Izlaz:
Wed Nov 29 06:36:22 UTC 2017
U gornjem primjeru datuma prikazanog u zadanom formatu, ako želimo datum i vrijeme prikazati u drugom formatu, prvo razumite oblikovanje datuma.
SimpleDateFormat: Raščlanjivanje i formatiranje datuma
Sigurno ste svi naučili abecedu u svom vrtiću
...Naučimo sada ABC-je formata datuma.
Pismo | Komponenta datuma ili vremena | Primjeri |
---|---|---|
G | Označivač ere | OGLAS |
g | Godina | 2018. godine |
M | Mjesec u godini | Srpnja ili srpnja ili 07 |
w | Tjedan u godini | 27 |
W | Tjedan u mjesecu | 2 |
D | Dan u godini | 189 |
d | Dan u mjesecu | 10 |
F | Dan u tjednu u mjesecu | 2 |
E | Naziv dana u tjednu | Utorak ili utorak |
u | Broj dana u tjednu (1 = ponedjeljak,…, 7 = nedjelja) | 1 |
a | Oznaka Am / pm | PM |
H | Sat u danu (0-23) | 0 |
k | Sat u danu (1-24) | 24 |
K | Sat u am / pm (0-11) | 0 |
h | Sat u am / pm (1-12) | 12 |
m | Minuta u satu | 30 |
s | Druga u minuti | 55 |
S | Milisekunda | 978 |
z | Vremenska zona | Pacifičko standardno vrijeme; PST; GMT-08: 00 |
Z | Vremenska zona | -0800 |
x | Vremenska zona | -08 ili -0800 ili -08: 00 |
Ne brinite, ne morate se sjećati svih ovih, na njih se možete uputiti kad god trebate formatirati određeni datum.
Kako koristiti SimpleDateFormat?
Java nudi klasu SimpleDateFormat koja vam omogućuje formatiranje i raščlanjivanje datuma prema vašim zahtjevima.
Gore navedene znakove možete koristiti za određivanje formata - Na primjer:
1) Potreban format datuma: 2012.10.23 20:20:45 PST
Odgovarajući format datuma bit će yyyy.MM.dd VH: mm: ss zzz
2) Potreban format datuma: 09:30:00, 23. svibnja 2012
Odgovarajući format datuma bit će : hh: mm: ss a dd-MMM-yyyy
Savjet: Budite oprezni s velikim slovima. Ako M zamijenite s m, postići će se neželjeni rezultati!
Naučimo to na primjeru koda.
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}}
Izlaz:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
Usporedite primjere datuma
Najkorisnija metoda usporedbe datuma je upotreba metode - compareTo ()
Pogledajmo donji isječak koda-
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 !!");}}}Izlaz:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2