W tym samouczku nauczysz się -
- Wyświetl aktualną datę w Javie
- SimpleDateFormat: analizuj i formatuj daty
- Przykład porównania dat
Najpierw zrozumiemy parametry, które składają się na datę .
Będzie zawierał przede wszystkim -
- Roku (w 2 lub 4 cyfry)
- Miesięcy (w obu 2 cyfr, pierwsze 3 litery nazwy miesiąca lub cały wyraz miesiąca).
- Data (będzie to faktyczna data miesiąca).
- Dni (dzień na dany dzień - jak Sun, Mon, Tue, itp)
Jeśli chodzi o systemy komputerowe, istnieje wiele parametrów, które można wykorzystać do skojarzenia z datą. Zobaczymy je w dalszej części tematu.
Wyświetl datę w Javie
Zobaczmy teraz, jak Java dostarcza nam datę. Najpierw zobaczymy, jak uzyskać aktualną datę-
Java udostępnia klasę Date w pakiecie java.util. Pakiet udostępnia kilka metod do zabawy z datą.
Możesz użyć obiektu Date, wywołując konstruktor klasy Date w następujący sposób:
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());}}
Wynik:
Wed Nov 29 06:36:22 UTC 2017
W powyższym przykładzie data pokazana w domyślnym formacie, jeśli chcemy pokazać datę i godzinę w innym formacie, najpierw zapoznaj się z formatowaniem daty.
SimpleDateFormat: analizuj i formatuj daty
Wszyscy musieliście się nauczyć alfabetów w swoim przedszkolu
…Nauczmy się teraz ABC formatu daty.
List | Składnik daty lub godziny | Przykłady |
---|---|---|
sol | Wyznacznik ery | OGŁOSZENIE |
y | Rok | 2018 |
M | Miesiąc w roku | Lipiec lub lipiec lub 07 |
w | Tydzień w roku | 27 |
W | Tydzień w miesiącu | 2 |
re | Dzień w roku | 189 |
re | Dzień w miesiącu | 10 |
fa | Dzień tygodnia w miesiącu | 2 |
mi | Nazwa dnia w tygodniu | Wtorek lub wtorek |
u | Numer dnia tygodnia (1 = poniedziałek,…, 7 = niedziela) | 1 |
za | Znacznik przed południem / po południu | PO POŁUDNIU |
H. | Godzina w dzień (0-23) | 0 |
k | Godzina w dzień (1-24) | 24 |
K. | Godzina am / pm (0-11) | 0 |
godz | Godzina am / pm (1-12) | 12 |
m | Minuta za godzinę | 30 |
s | Sekunda za minutę | 55 |
S | Milisekunda | 978 |
z | Strefa czasowa | Czas pacyficzny; PST; GMT-08: 00 |
Z | Strefa czasowa | -0800 |
X | Strefa czasowa | -08 lub -0800 lub -08: 00 |
Nie martw się, nie musisz o tym wszystkim pamiętać, możesz na nie odesłać w dowolnym momencie, gdy musisz sformatować określoną datę.
Jak korzystać z SimpleDateFormat?
Java udostępnia klasę o nazwie SimpleDateFormat, która umożliwia formatowanie i analizowanie dat zgodnie z wymaganiami.
Możesz użyć powyższych znaków, aby określić format - na przykład:
1) Wymagany format daty: 2012.10.23 20:20:45 czasu PST
Odpowiedni określony format daty to rrrr.MM.dd GG: mm: ss zzz
2) Wymagany format daty: 09:30:00 23 maja 2012 r
Odpowiedni określony format daty to -gg: mm: ss a dd-MMM-rrrr
Wskazówka: uważaj na wielkie litery. Jeśli pomylisz M z m, otrzymasz niepożądane rezultaty!
Nauczmy się tego na przykładzie kodu.
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}}
Wynik:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
Przykład porównania dat
Najbardziej użyteczną metodą porównywania dat jest użycie metody - compareTo ()
Przyjrzyjmy się poniższemu fragmentowi kodu-
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 !!");}}}Wynik:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2