Data Java & Czas: SimpleDateFormat, bieżąca data i amp; Porównać

Spisie treści:

Anonim

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