Java Data e ora
Cerchiamo innanzitutto di comprendere i parametri che consistono in a Data.
Conterrà principalmente:
- anno (in 2 o 4 cifre)
- mese (in 2 cifre, prime 3 lettere del mese o l'intera parola del mese).
- quando (sarà la data effettiva del mese).
- giorno (il giorno alla data indicata – come domenica, lunedì, martedì, ecc.)
Per quanto riguarda i sistemi informatici, ci sono parecchi parametri che possono essere usati per associare una data. Li vedremo nelle parti successive di questo argomento.
Visualizza la data in Java
Ora vediamo come Java fornirci la data. Per prima cosa vedremo come ottenere la data corrente-
Java fornisce una classe Date nel pacchetto java.util. Il pacchetto fornisce diversi metodi per giocare con la data.
È possibile utilizzare l'oggetto Date richiamando il costruttore della classe Date come segue:
import java.util.Date; class Date_Ex1 { public static void main(String args[]) { // Instantiate a Date object by invoking its constructor Date objDate = new Date(); // Display the Date & Time using toString() System.out.println(objDate.toString()); } }
Produzione:
Wed Nov 29 06:36:22 UTC 2017
Nell'esempio sopra la data mostrata nel formato predefinito, se vogliamo mostrare la data e l'ora in un altro formato, comprendiamo prima la formattazione della data.
SimpleDateFormat: analizza e formatta le date
Tutti voi avrete imparato gli alfabeti alla scuola materna….
Impariamo ora l'ABC del formato della data.
Lettera | Componente data o ora | Esempi |
---|---|---|
G | Designatore dell'era | AD |
y | Anno | 2018 |
M | Mese nell'anno | Luglio o luglio o 07 |
w | Settimana nell'anno | 27 |
W | Settimana nel mese | 2 |
D | Giorno dell'anno | 189 |
d | Giorno del mese | 10 |
F | Giorno della settimana nel mese | 2 |
E | Nome del giorno nella settimana | Martedì o martedì |
u | Numero del giorno della settimana (1 = Monday, …, 7 = domenica) | 1 |
a | Indicatore am/pm | PM |
H | Ora del giorno (0-23) | 0 |
k | Ora del giorno (1-24) | 24 |
K | Ora in am/pm (0-11) | 0 |
h | Ora in am/pm (1-12) | 12 |
m | Minuto in ora | 30 |
s | Secondo in minuto | 55 |
S | millisecondo | 978 |
z | Fuso orario | Ora solare del Pacifico; PST; GMT-08:00 |
Z | Fuso orario | all'0800 ottobre |
X | Fuso orario | -08 o -0800:08 o -00:XNUMX |
Non preoccuparti, non è necessario ricordarli tutti, puoi consultarli ogni volta che devi formattare una data particolare.
Come utilizzare SimpleDateFormat?
Java fornisce una classe chiamata SimpleDateFormat che ti consente di formattare e analizzare le date secondo le tue esigenze.
È possibile utilizzare i caratteri sopra per specificare il formato-
Per esempio:
1) Formato data richiesto: 2012.10.23 20:20:45 PST
Il formato data appropriato specificato sarà- aaaa.MM.gg HH:mm:ss zzz
2) Formato data richiesto:09:30:00 AM 23-May-2012
Il formato data appropriato specificato sarà-hh:mm:ss a gg-MMM-aaaa
Suggerimento: Fai attenzione alle maiuscole. Se confondi M con m, otterrai risultati indesiderati!
Impariamo questo con un esempio di codice.
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 objDate System.out.println(objDate); String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date } }
Produzione:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Esempio di confronto delle date
Il metodo più utile per confrontare le date è utilizzare il metodo – compareTo()
Diamo un'occhiata al frammento di codice seguente:
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 !!"); } } }
Produzione:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2