I den här handledningen lär du dig -
- Visa aktuellt datum i Java
- SimpleDateFormat: Analysera och formatera datum
- Jämför datumexempel
Låt oss först förstå parametrarna som består av ett datum .
Den kommer främst att innehålla -
- Det år (i antingen 2 eller 4 siffror)
- Den månad (i antingen 2 siffror, första 3 bokstäverna i månaden eller fullständiga ord i månaden).
- Den tidpunkt (det kommer att vara den faktiska dagen i månaden).
- Den dagen (dagen vid en given tidpunkt - som Sun, Mån, Tis, etc.)
När det gäller datorsystem finns det en hel del 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 i Java
Låt oss nu se hur Java ger 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 innehåller flera metoder för att leka med datumet.
Du kan använda Date-objektet genom att anropa konstruktören 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 constructorDate objDate = new Date();// Display the Date & Time using toString()System.out.println(objDate.toString());}}
Produktion:
Wed Nov 29 06:36:22 UTC 2017
I ovanstående exempel visas i standardformat. Om vi vill visa datum och tid i ett annat format, förstår du först Formatering av datum.
SimpleDateFormat: Analysera och formatera datum
Ni måste alla ha lärt er alfabetet i din dagis
....Låt oss nu lära oss ABC: ns datumformat.
Brev | Datum eller tidskomponent | Exempel |
---|---|---|
G | Era designator | 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 | Veckodag (1 = måndag,…, 7 = söndag) | 1 |
a | Am / pm-markör | PM |
H | Timme i dag (0-23) | 0 |
k | Timme på dag (1-24) | 24 |
K | Timme i am / pm (0-11) | 0 |
h | Timme i am / pm (1-12) | 12 |
m | Minutt i timme | 30 |
s | Andra på minut | 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 för att formatera ett visst datum.
Hur använder jag SimpleDateFormat?
Java tillhandahåller en klass som heter SimpleDateFormat som låter dig formatera och analysera datum enligt dina behov.
Du kan använda ovanstående tecken för att specificera formatet - till exempel:
1) Datumformat krävs: 2012.10.23 20:20:45 PST
Lämpligt datumformat som anges är yyyy.MM.dd HH: mm: ss zzz
2) Datumformat krävs: 09:30:00 23 maj 2012
Lämpligt datumformat som anges kommer att vara - hh: mm: ss en dd-MMM-åååå
Tips: Var försiktig med bokstäverstorlek. Om du misstänker 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 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}}
Produktion:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
Jämför datumexempel
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å nedanstående kodavsnitt-
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-1981Date2 : 12-10-2012Date 1 occurs before Date 2