Java Dato og tid
Lad os først forstå de parametre, der består af en Dato.
Det vil primært indeholde –
- år (med enten 2 eller 4 cifre)
- måned (med enten 2 cifre, de første 3 bogstaver i måneden eller hele månedens ord).
- dato (det vil være den faktiske dato på måneden).
- dag (dagen på den givne dato - som søn, man, tirsdag osv.)
Med hensyn til computersystemer er der en del parametre, som kan bruges til at forbinde med en dato. Vi vil se dem i de senere dele af dette emne.
Vis dato i Java
Lad os nu se hvordan Java give os datoen. Først skal vi se, hvordan man får den aktuelle dato-
Java giver en Dato-klasse under java.util-pakken. Pakken giver flere metoder til at lege med datoen.
Du kan bruge Date-objektet ved at påkalde konstruktøren af Date-klassen som følger:
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()); } }
Output:
Wed Nov 29 06:36:22 UTC 2017
I ovenstående eksempel vises dato i standardformat, hvis vi ønsker at vise dato og klokkeslæt i et andet format, skal du først forstå formateringen af dato.
SimpleDateFormat: Parse og formater datoer
I skal alle have lært alfabeterne i jeres børnehave...
Lad os nu lære ABC'erne for datoformatet.
Brev | Dato- eller tidskomponent | Eksempler |
---|---|---|
G | Epoke betegner | AD |
y | År | 2018 |
M | Måned i år | juli eller juli eller 07 |
w | Uge i år | 27 |
W | Uge i måned | 2 |
D | Dag i år | 189 |
d | Dag i måned | 10 |
F | Ugedag i måned | 2 |
E | Dagens navn i ugen | tirsdag eller tirsdag |
u | Dagnummer i ugen (1 = Monday, …, 7 = søndag) | 1 |
a | Am/pm markør | PM |
H | Time om dagen (0-23) | 0 |
k | Time om dagen (1-24) | 24 |
K | Time i am/pm (0-11) | 0 |
h | Time i am/pm (1-12) | 12 |
m | Minut i time | 30 |
s | Anden på minut | 55 |
S | millisekund | 978 |
z | Tidszone | Pacific Standard Time; PST; GMT-08:00 |
Z | Tidszone | -0800 |
X | Tidszone | -08 eller -0800 eller -08:00 |
Bare rolig, du behøver ikke at huske alle disse, de kan henvises når som helst du har brug for at formatere en bestemt dato.
Hvordan bruger man SimpleDateFormat?
Java giver en klasse kaldet et SimpleDateFormat, der giver dig mulighed for at formatere og parse datoer i henhold til dine krav.
Du kan bruge ovenstående tegn til at angive formatet-
For eksempel:
1) Datoformat påkrævet: 2012.10.23 20:20:45 PST
Det angivne passende datoformat vil være- åååå.MM.dd TT:mm:ss zzz
2) Datoformat påkrævet:09:30:00 AM 23-May-2012
Det angivne passende datoformat vil være-tt:mm:ss en dd-MMM-åååå
Tip: Vær forsigtig med brug af store bogstaver. Hvis du forveksler M med m, vil du få uønskede resultater!
Lad os lære dette med et kodeeksempel.
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 } }
Output:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Sammenlign Datoer Eksempel
Den mest nyttige metode til at sammenligne datoer er ved at bruge metoden – compareTo()
Lad os tage et kig på nedenstående kodestykke-
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 !!"); } } }
Output:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2