Data Java & Ora: SimpleDateFormat, Data curentă & Comparaţie

Cuprins:

Anonim

În acest tutorial, veți învăța -

  • Afișează data curentă în Java
  • SimpleDateFormat: Analizați și formatați datele
  • Compară datele Exemplu

Să înțelegem mai întâi parametrii care constau dintr-o dată .

Acesta va conține în principal -

  • An (în 2 sau 4 cifre)
  • Luna (fie în 2 cifre, primele 3 litere ale lunii sau întregul cuvânt al lunii).
  • Data (aceasta va fi data efectivă a lunii).
  • Zi (ziua la o anumită dată - ca Duminica, Luni, Marti, etc)

În ceea ce privește sistemele informatice, există destul de mulți parametri care pot fi folosiți pentru a se asocia cu o dată. Le vom vedea în părțile ulterioare ale acestui subiect.

Afișați data în Java

Acum, să vedem cum Java ne oferă data. În primul rând, vom vedea cum se obține data curentă-

Java oferă o clasă Date sub pachetul java.util, Pachetul oferă mai multe metode pentru a juca cu data.

Puteți utiliza obiectul Date invocând constructorul clasei Date după cum urmează:

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

Ieșire:

Wed Nov 29 06:36:22 UTC 2017

În exemplul de dată de mai sus, afișat în format implicit, dacă dorim să afișăm data și ora într-un alt format, înțelegem mai întâi Formatarea datei.

SimpleDateFormat: Analizați și formatați datele

Cu toții trebuie să fi învățat alfabetele din grădinița voastră

….

Să învățăm acum formatul ABC al datei.

Scrisoare Componenta dată sau oră Exemple
G Desemnator de epocă ANUNȚ
y An 2018
M Luna în an Iulie sau iulie sau 07
w Săptămâna în an 27
W Săptămână în lună 2
D Zi în an 189
d Zi în lună 10
F Ziua săptămânii în lună 2
E Numele zilei în săptămână Marți sau marți
tu Numărul zilei săptămânii (1 = luni,…, 7 = duminică) 1
A Marcator am / pm P.M
H Ora din zi (0-23) 0
k Ora din zi (1-24) 24
K Ora în am / pm (0-11) 0
h Ora în am / pm (1-12) 12
m Minut în oră 30
s În al doilea minut 55
S Milisecunda 978
z Fus orar Ora standard a Pacificului; PST; GMT-08: 00
Z Fus orar -0800
X Fus orar -08 sau -0800 sau -08: 00

Nu vă faceți griji, nu trebuie să vă amintiți toate acestea, ele pot fi trimise oricând trebuie să formatați o anumită dată.

Cum se folosește SimpleDateFormat?

Java oferă o clasă numită SimpleDateFormat care vă permite să formatați și să analizați datele în conformitate cu cerințele dvs.

Puteți utiliza caracterele de mai sus pentru a specifica formatul - De exemplu:

1) Format de dată necesar: 2012.10.23 20:20:45 PST

Formatul de dată corespunzător specificat va fi- aaa.MM.dd HH: mm: ss zzz

2) Format de dată necesar: 09:30:00 AM 23-mai-2012

Formatul de dată adecvat specificat va fi : hh: mm: ss a dd-MMM-aaaa

Sfat: Aveți grijă cu scrierea cu majuscule. Dacă greșiți M cu m, veți obține rezultate nedorite!

Să învățăm acest lucru cu un exemplu de cod.

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}}

Ieșire:

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

Compară datele Exemplu

Cea mai utilă metodă de comparare a datelor este folosirea metodei - compareTo ()

Să aruncăm o privire la fragmentul de cod de mai jos-

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 !!");}}}
Ieșire:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2