Java Datum en tijd
Laten we eerst de parameters begrijpen die uit a bestaan Datum.
Het zal voornamelijk bestaan uit:
- De jaar (in 2 of 4 cijfers)
- De maand (in 2 cijfers, de eerste 3 letters van de maand of het hele woord van de maand).
- De gegevens (dit is de werkelijke datum van de maand).
- De dag (de dag op de opgegeven datum – zoals zondag, maandag, dinsdag, etc.)
Wat betreft computersystemen zijn er nogal wat parameters die kunnen worden gebruikt om een datum te associëren. We zullen ze later in dit onderwerp zien.
Datum weergeven in Java
Laten we nu eens kijken hoe Java geef ons de datum. Eerst zullen we zien hoe we de huidige datum kunnen krijgen-
Java biedt een Date-klasse onder het java.util-pakket. Het pakket biedt verschillende methoden om met de datum te experimenteren.
U kunt het Date-object gebruiken door de constructor van de Date-klasse als volgt aan te roepen:
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
In het bovenstaande voorbeeld wordt de datum weergegeven in het standaardformaat. Als we de datum en tijd in een ander formaat willen weergeven, moet u eerst de datumnotatie begrijpen.
SimpleDateFormat: datums parseren en formatteren
Jullie hebben vast allemaal het alfabet op de kleuterschool geleerd….
Laten we nu het ABC van het datumformaat leren.
Letter | Datum- of tijdcomponent | Voorbeelden |
---|---|---|
G | Tijdperkaanduiding | AD |
y | Jaar | 2018 |
M | Maand in jaar | Juli of juli of 07 |
w | Week in jaar | 27 |
W | Week in maand | 2 |
D | Dag in jaar | 189 |
d | Dag in maand | 10 |
F | Dag van de week in de maand | 2 |
E | Dagnaam in week | Dinsdag of di |
u | Dagnummer van de week (1 = Monday, …, 7 = zondag) | 1 |
a | Am/pm-markering | PM |
H | Uur in dag (0-23) | 0 |
k | Uur in dag (1-24) | 24 |
K | Uur in am/pm (0-11) | 0 |
h | Uur in am/pm (1-12) | 12 |
m | Minuut in uur | 30 |
s | Tweede in minuut | 55 |
S | Milliseconde | 978 |
z | tijdzone | Pacifische standaardtijd; PST; GMT-08:00 uur |
Z | tijdzone | -0800 |
X | tijdzone | -08 of -0800 of -08:00 |
Maakt u zich geen zorgen, u hoeft deze niet allemaal te onthouden. U kunt ze op elk gewenst moment doorverwijzen als u een bepaalde datum wilt noteren.
Hoe gebruik je het SimpleDateFormat?
Java biedt een klasse genaamd SimpleDateFormat waarmee u datums kunt opmaken en parseren volgens uw vereisten.
U kunt de bovenstaande tekens gebruiken om het formaat op te geven-
Bijvoorbeeld:
1) Datumformaat vereist: 2012.10.23 20:20:45 PST
Het juiste gespecificeerde datumformaat zal zijn- jjjj.MM.dd UU:mm:ss zzz
2) Datumformaat vereist:09:30:00 AM 23-May-2012
Het juiste gespecificeerde datumformaat zal zijn-uu:mm:ss a dd-MMM-jjjj
Tip: Wees voorzichtig met het gebruik van hoofdletters. Als u M met m verwart, krijgt u ongewenste resultaten!
Laten we dit leren met een codevoorbeeld.
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
Voorbeeld van datums vergelijken
De handigste methode om datums te vergelijken is door gebruik te maken van de methode – CompareTo()
Laten we eens kijken naar het onderstaande codefragment:
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