Java Datum en tijd

Laten we eerst de parameters begrijpen die uit a bestaan Datum.

Datum in gebruiken Java

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

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