Dátum Java & Čas: SimpleDateFormat, aktuálny dátum & Porovnaj

Obsah:

Anonim

V tomto výučbe sa dozviete -

  • Zobraziť aktuálny dátum v Jave
  • SimpleDateFormat: Analýza a formátovanie dátumov
  • Príklad porovnania dátumov

Najprv pochopíme parametre, ktoré pozostávajú z dátumu .

Bude obsahovať predovšetkým -

  • Rok (v 2 alebo 4 číslice)
  • Mesiac (buď 2 číslice, prvé 3 písmená mesiaca alebo celé slovo v mesiaci).
  • Dátum (to bude aktuálny deň v mesiaci).
  • Deň (deň v danom dni - rovnako ako slnko, po, ut, atď)

Pokiaľ ide o počítačové systémy, existuje pomerne veľa parametrov, ktoré možno použiť na priradenie k dátumu. Uvidíme ich v ďalších častiach tejto témy.

Zobraziť dátum v Jave

Teraz sa pozrime, ako nám Java poskytuje Dátum. Najprv uvidíme, ako získať aktuálny dátum -

Java poskytuje triedu Date v rámci balíka java.util. Balík poskytuje niekoľko metód, ako sa pohrať s dátumom.

Objekt Date môžete použiť vyvolaním konštruktora triedy Date nasledovne:

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());}}

Výkon:

Wed Nov 29 06:36:22 UTC 2017

Vo vyššie uvedenom príklade je dátum zobrazený v predvolenom formáte. Ak chceme zobraziť dátum a čas v inom formáte, prečítajte si najskôr Formátovanie dátumu.

SimpleDateFormat: Analýza a formátovanie dátumov

Všetci ste sa určite museli naučiť abecedy vo svojej materskej škole

….

Poďme sa teraz naučiť ABC formátu dátumu.

List Zložka dátumu alebo času Príklady
G Označenie éry AD
r Rok 2018
M Mesiac v roku Júl alebo júl alebo 07
w Týždeň v roku 27
Ž Týždeň v mesiaci 2
D Deň v roku 189
d Deň v mesiaci 10
F Deň v týždni v mesiaci 2
E Meno dňa v týždni Utorok alebo utorok
u Počet dní v týždni (1 = pondelok, ..., 7 = nedeľa) 1
a Značka dopoludnia / hod POPOLUDNIE
H Hodina v deň (0 - 23) 0
k Hodina v deň (1 - 24) 24
K Hodina v am / pm (0-11) 0
h Hodina v am / pm (1-12) 12
m Minúta za hodinu 30
s O chvíľu druhý 55
S Milisekunda 978
z Časové pásmo Tichomorský štandardný čas; PST; GMT-08: 00
Z Časové pásmo -0800
X Časové pásmo -08 alebo -0800 alebo -08: 00

Nebojte sa, nemusíte si pamätať všetky tieto skutočnosti, môžu byť kedykoľvek odoslané, keď potrebujete naformátovať konkrétny dátum.

Ako používať SimpleDateFormat?

Java poskytuje triedu nazvanú SimpleDateFormat, ktorá vám umožňuje formátovať a analyzovať dáta podľa vašich požiadaviek.

Pomocou vyššie uvedených znakov môžete určiť formát - Napríklad:

1) Požadovaný formát dátumu: 2012.10.23 20:20:45 PST

Príslušný zadaný formát dátumu bude rrrr.MM.dd HH: mm: ss zzz

2) Vyžaduje sa formát dátumu: 23. mája 2012 o 9:30:00

Príslušný zadaný formát dátumu bude : hh: mm: ss a dd-MMM-rrrr

Tip: Pri veľkých písmenách buďte opatrní. Ak si pomýlite M s m, budete mať nežiaduce výsledky!

Naučme sa to na príklade 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 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}}

Výkon:

Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017

Príklad porovnania dátumov

Najužitočnejšou metódou porovnania dátumov je použitie metódy - compareTo ()

Pozrime sa na nasledujúci úryvok 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ýkon:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2