Java Datum och tid
Låt oss först förstå parametrarna som består av en Datum.
Den kommer i första hand att innehålla –
- Smakämnen år (med antingen 2 eller 4 siffror)
- Smakämnen månad (med antingen 2 siffror, första 3 bokstäverna i månaden eller hela månadens ord).
- Smakämnen datum (det kommer att vara det faktiska datumet i månaden).
- Smakämnen dag (dagen vid det angivna datumet – som sön, mån, tis, etc.)
När det gäller datorsystem finns det ganska många parametrar som kan användas för att associera med ett datum. Vi kommer att se dem i de senare delarna av detta ämne.
Visa datum in Java
Låt oss nu se hur Java ge oss datumet. Först ska vi se hur man får det aktuella datumet-
Java tillhandahåller en Date-klass under paketet java.util. Paketet tillhandahåller flera metoder för att leka med datumet.
Du kan använda Date-objektet genom att anropa konstruktorn för Date-klassen enligt följande:
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()); } }
Produktion:
Wed Nov 29 06:36:22 UTC 2017
I exemplet ovan visas datum i standardformat, om vi vill visa datum och tid i ett annat format, förstå först formateringen av datum.
SimpleDateFormat: Analysera och formatera datum
Ni måste alla ha lärt er alfabetet på er dagis...
Låt oss nu lära oss ABC:erna för datumformatet.
Brev | Datum eller Tidskomponent | Exempel |
---|---|---|
G | Era betecknare | AD |
y | År | 2018 |
M | Månad i år | juli eller juli eller 07 |
w | Vecka i år | 27 |
W | Vecka i månad | 2 |
D | Dag i år | 189 |
d | Dag i månad | 10 |
F | Veckodag i månad | 2 |
E | Dagens namn i veckan | tisdag eller tis |
u | Dagnummer i veckan (1 = Monday, …, 7 = söndag) | 1 |
a | Am/pm-markör | PM |
H | Timme på dygnet (0-23) | 0 |
k | Timme på dygnet (1-24) | 24 |
K | Timme i am/pm (0-11) | 0 |
h | Timme i am/pm (1-12) | 12 |
m | Minut i timme | 30 |
s | Tvåa på minuten | 55 |
S | millisekund | 978 |
z | tidszon | Pacific Standard Time; PST; GMT-08:00 |
Z | tidszon | -0800 |
X | tidszon | -08 eller -0800 eller -08:00 |
Oroa dig inte, du behöver inte komma ihåg alla dessa, de kan hänvisas när du behöver formatera ett visst datum.
Hur använder man SimpleDateFormat?
Java tillhandahåller en klass som heter SimpleDateFormat som låter dig formatera och analysera datum enligt dina krav.
Du kan använda tecknen ovan för att ange format-
Till exempel:
1) Datumformat krävs: 2012.10.23 20:20:45 PST
Det lämpliga datumformatet som anges kommer att vara- åååå.MM.dd HH:mm:ss zzz
2) Datumformat krävs:09:30:00 AM 23-May-2012
Det lämpliga datumformatet som anges kommer att vara-hh:mm:ss en dd-MMM-åååå
Dricks: Var försiktig med versaler. Om du missar M med m, kommer du att få oönskade resultat!
Låt oss lära oss detta med ett kodexempel.
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 } }
Produktion:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Jämför datum exempel
Den mest användbara metoden för att jämföra datum är att använda metoden – compareTo()
Låt oss ta en titt på kodavsnittet nedan-
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 !!"); } } }
Produktion:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2