Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java - Datum und Uhrzeit

Java liefert das Datum Klasse verfügbar in java.util Paket kapselt diese Klasse das aktuelle Datum und die Uhrzeit.

Die Date-Klasse unterstützt zwei Konstruktoren, wie in der folgenden Tabelle gezeigt.

Sr.No. Konstruktor &Beschreibung
1

Datum( )

Dieser Konstruktor initialisiert das Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit.

2

Datum (lange Millisekunde)

Dieser Konstruktor akzeptiert ein Argument, das der Anzahl der Millisekunden entspricht, die seit dem 1. Januar 1970, Mitternacht, vergangen sind.

Es folgen die Methoden der Datumsklasse.

Sr.No. Methode &Beschreibung
1

boolesch nach(Datum Datum)

Gibt „true“ zurück, wenn das aufrufende Date-Objekt ein Datum enthält, das nach dem durch date angegebenen Datum liegt, andernfalls wird „false“ zurückgegeben.

2

boolesch vor (Datum Datum)

Gibt „true“ zurück, wenn das aufrufende Date-Objekt ein Datum enthält, das vor dem durch date angegebenen Datum liegt, andernfalls wird „false“ zurückgegeben.

3

Objektklon( )

Dupliziert das aufrufende Date-Objekt.

4

int vergleichenTo(Datum Datum)

Vergleicht den Wert des aufrufenden Objekts mit dem von date. Gibt 0 zurück, wenn die Werte gleich sind. Gibt einen negativen Wert zurück, wenn das aufrufende Objekt vor dem Datum liegt. Gibt einen positiven Wert zurück, wenn das aufrufende Objekt nach dem Datum liegt.

5

int CompareTo(Object obj)

Funktioniert genauso wie „compareTo(Date)“, wenn obj der Klasse „Date“ angehört. Andernfalls wird eine ClassCastException ausgelöst.

6

boolean equals(Objektdatum)

Gibt „true“ zurück, wenn das aufrufende Date-Objekt die gleiche Zeit und das gleiche Datum enthält wie das durch „date“ angegebene, andernfalls wird „false“ zurückgegeben.

7

lange getTime()

Gibt die Anzahl der Millisekunden zurück, die seit dem 1. Januar 1970 vergangen sind.

8

int hashCode( )

Gibt einen Hashcode für das aufrufende Objekt zurück.

9

void setTime(lange Zeit)

Legt die Zeit und das Datum fest, wie durch time angegeben, was eine verstrichene Zeit in Millisekunden seit dem 1. Januar 1970, Mitternacht, darstellt.

10

String zuString( )

Konvertiert das aufrufende Date-Objekt in einen String und gibt das Ergebnis zurück.

Aktuelles Datum und Uhrzeit abrufen

Dies ist eine sehr einfache Methode, um das aktuelle Datum und die Uhrzeit in Java zu erhalten. Sie können ein einfaches Date-Objekt mit toString() verwenden Methode zum Drucken des aktuellen Datums und der Uhrzeit wie folgt −

Beispiel

Live-Demo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date using toString()
      System.out.println(date.toString());
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

on May 04 09:51:52 CDT 2009

Datumsvergleich

Im Folgenden finden Sie die drei Möglichkeiten, zwei Daten zu vergleichen −

Datumsformatierung mit SimpleDateFormat

SimpleDateFormat ist eine konkrete Klasse zum Formatieren und Analysieren von Datumsangaben auf gebietsschemaabhängige Weise. Mit SimpleDateFormat können Sie beginnen, indem Sie benutzerdefinierte Muster für die Formatierung von Datum und Uhrzeit auswählen.

Beispiel

Live-Demo
import java.util.*;
import java.text.*;

public class DateDemo {

   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

Einfache DateFormat-Formatcodes

Um das Zeitformat anzugeben, verwenden Sie eine Zeitmusterzeichenfolge. In diesem Muster sind alle ASCII-Buchstaben als Musterbuchstaben reserviert, die wie folgt definiert sind −

Zeichen Beschreibung Beispiel
G Ärabezeichnung AD
y Jahr in vier Ziffern 2001
M Monat im Jahr Juli oder 07
d Tag im Monat 10
h Stunde in A.M./P.M. (1~12) 12
H Stunde am Tag (0~23) 22
m Minute in Stunde 30
s Sekunde in Minute 55
S Millisekunde 234
E Tag in der Woche Dienstag
D Tag im Jahr 360
F Wochentag im Monat 2 (zweiter Mittwoch im Juli)
w Woche im Jahr 40
W Woche im Monat 1
ein AM/PM Markierung PN
k Stunde am Tag (1~24) 24
K Stunde in A.M./P.M. (0~11) 10
z Zeitzone Eastern Standard Time
' Escape für Text Trennzeichen
" Einfaches Anführungszeichen `

Datumsformatierung mit printf

Die Formatierung von Datum und Uhrzeit kann sehr einfach mit printf erfolgen Methode. Sie verwenden ein Zwei-Buchstaben-Format, beginnend mit t und mit einem der Buchstaben der Tabelle enden, wie im folgenden Code gezeigt.

Beispiel

Live-Demo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date
      String str = String.format("Current Date/Time : %tc", date );

      System.out.printf(str);
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

Es wäre ein bisschen dumm, wenn Sie das Datum mehrmals angeben müssten, um jeden Teil zu formatieren. Aus diesem Grund kann ein Formatstring den Index des zu formatierenden Arguments angeben.

Der Index muss unmittelbar auf das % folgen und durch ein $ abgeschlossen werden.

Beispiel

Live-Demo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display time and date
      System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date);
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Due date: February 09, 2004

Alternativ können Sie das Flag

Beispiel

Live-Demo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display formatted date
      System.out.printf("%s %tB %<te, %<tY", "Due date:", date);
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Due date: February 09, 2004

Datums- und Uhrzeitkonvertierungszeichen

Zeichen Beschreibung Beispiel
c Vollständiges Datum und Uhrzeit Montag 04. Mai 09:51:52 CDT 2009
F ISO 8601-Datum 2004-02-09
D USA formatiertes Datum (Monat/Tag/Jahr) 09.02.2004
T 24-Stunden-Zeit 18:05:19
r 12-Stunden-Zeit 18:05:19 Uhr
R 24-Stunden-Zeit, keine Sekunden 18:05
J Vierstellige Jahreszahl (mit führenden Nullen) 2004
y Letzte zwei Ziffern des Jahres (mit führenden Nullen) 04
C Erste zwei Ziffern des Jahres (mit führenden Nullen) 20
B Vollständiger Monatsname Februar
b Abgekürzter Monatsname Februar
m Zweistelliger Monat (mit führenden Nullen) 02
d Zweistelliger Tag (mit führenden Nullen) 03
e Zweistelliger Tag (ohne führende Nullen) 9
A Vollständiger Name des Wochentags Montag
ein Abgekürzter Wochentagname Mo
j Dreistelliger Tag des Jahres (mit führenden Nullen) 069
H Zweistellige Stunde (mit führenden Nullen), zwischen 00 und 23 18
k Zweistellige Stunde (ohne führende Nullen), zwischen 0 und 23 18
Ich Zweistellige Stunde (mit führenden Nullen), zwischen 01 und 12 06
l Zweistellige Stunde (ohne führende Nullen), zwischen 1 und 12 6
M Zweistellige Minuten (mit führenden Nullen) 05
S Zweistellige Sekunden (mit führenden Nullen) 19
L Dreistellige Millisekunden (mit führenden Nullen) 047
N Neunstellige Nanosekunden (mit führenden Nullen) 047000000
P Morgen- oder Nachmittagsmarkierung in Großbuchstaben PM
p Morgen- oder Nachmittagsmarkierung in Kleinbuchstaben pm
z Numerischer Offset nach RFC 822 von GMT -0800
Z Zeitzone PST
s Sekunden seit dem 1.1.1970 00:00:00 GMT 1078884319
Q Millisekunden seit 1970-01-01 00:00:00 GMT 1078884319047

Es gibt andere nützliche Klassen, die sich auf Datum und Uhrzeit beziehen. Weitere Einzelheiten finden Sie in der Java Standard-Dokumentation.

Strings in Daten zerlegen

Die Klasse SimpleDateFormat hat einige zusätzliche Methoden, insbesondere parse( ), die versucht, einen String gemäß dem im gegebenen SimpleDateFormat-Objekt gespeicherten Format zu parsen.

Beispiel

Live-Demo
import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 
      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 
      Date t;
      try {
         t = ft.parse(input); 
         System.out.println(t); 
      } catch (ParseException e) { 
         System.out.println("Unparseable using " + ft); 
      }
   }
}

Ein Beispiellauf des obigen Programms würde zu folgendem Ergebnis führen −

Ausgabe

1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818

Eine Weile schlafen

Sie können für einen beliebigen Zeitraum von einer Millisekunde bis zur Lebensdauer Ihres Computers schlafen. Beispielsweise würde das folgende Programm für 3 Sekunden schlafen −

Beispiel

Live-Demo
import java.util.*;
public class SleepDemo {

   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(5*60*10); 
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) {
         System.out.println("Got an exception!"); 
      }
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009

Verstrichene Zeit messen

Manchmal müssen Sie den Zeitpunkt möglicherweise in Millisekunden messen. Schreiben wir also das obige Beispiel noch einmal um −

Beispiel

Live-Demo
import java.util.*;
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993

GregorianCalendar-Klasse

GregorianCalendar ist eine konkrete Implementierung einer Calendar-Klasse, die den normalen gregorianischen Kalender implementiert, mit dem Sie vertraut sind. Wir haben die Calendar-Klasse in diesem Tutorial nicht besprochen, Sie können dafür die Standard-Java-Dokumentation nachschlagen.

Die getInstance() Die Methode von Calendar gibt einen GregorianCalendar zurück, der mit dem aktuellen Datum und der aktuellen Uhrzeit im Standardgebietsschema und in der Zeitzone initialisiert wurde. GregorianCalendar definiert zwei Felder:AD und BC. Diese stellen die zwei Epochen dar, die durch den gregorianischen Kalender definiert sind.

Es gibt auch mehrere Konstruktoren für GregorianCalendar-Objekte −

Sr.No. Konstruktor &Beschreibung
1

Gregorianischer Kalender()

Konstruiert einen standardmäßigen gregorianischen Kalender unter Verwendung der aktuellen Zeit in der standardmäßigen Zeitzone mit dem standardmäßigen Gebietsschema.

2

GregorianCalendar(int Jahr, int Monat, int Datum)

Konstruiert einen gregorianischen Kalender mit dem angegebenen Datum in der Standardzeitzone mit dem Standardgebietsschema.

3

GregorianCalendar(int Jahr, int Monat, int Datum, int Stunde, int Minute)

Konstruiert einen gregorianischen Kalender mit dem angegebenen Datum und der Uhrzeit, die für die Standardzeitzone mit dem Standardgebietsschema eingestellt sind.

4

GregorianCalendar(int Jahr, int Monat, int Datum, int Stunde, int Minute, int Sekunde)

Konstruiert einen gregorianischen Kalender mit dem angegebenen Datum und der Uhrzeit, die für die Standardzeitzone mit dem Standardgebietsschema eingestellt sind.

5

GregorianCalendar(Gebietsschema aGebietsschema)

Erstellt einen gregorianischen Kalender basierend auf der aktuellen Uhrzeit in der Standardzeitzone mit dem angegebenen Gebietsschema.

6

GregorianCalendar(Zeitzonenzone)

Konstruiert einen gregorianischen Kalender basierend auf der aktuellen Zeit in der angegebenen Zeitzone mit dem Standardgebietsschema.

7

GregorianCalendar(TimeZone zone, Locale aLocale)

Konstruiert einen gregorianischen Kalender basierend auf der aktuellen Zeit in der angegebenen Zeitzone mit dem angegebenen Gebietsschema.

Hier ist die Liste einiger nützlicher Unterstützungsmethoden, die von der GregorianCalendar-Klasse bereitgestellt werden −

Sr.No. Methode &Beschreibung
1

void add(int field, intbetrag)

Fügt die angegebene (vorzeichenbehaftete) Zeitspanne zum angegebenen Zeitfeld hinzu, basierend auf den Regeln des Kalenders.

2

protected void computeFields()

Wandelt UTC als Millisekunden in Zeitfeldwerte um.

3

protected void computeTime()

Überschreibt Kalender Konvertiert Zeitfeldwerte in UTC als Millisekunden.

4

boolean equals(Object obj)

Vergleicht diesen GregorianCalendar mit einer Objektreferenz.

5

int get(int field)

Ruft den Wert für ein bestimmtes Zeitfeld ab.

6

int getActualMaximum(int field)

Gibt den maximalen Wert zurück, den dieses Feld beim aktuellen Datum haben könnte.

7

int getActualMinimum(int field)

Gibt den minimalen Wert zurück, den dieses Feld haben könnte, wenn das aktuelle Datum gegeben ist.

8

int getGreatestMinimum(int field)

Gibt den höchsten Mindestwert für das angegebene Feld zurück, wenn er variiert.

9

Datum getGregorianChange()

Ruft das Änderungsdatum des gregorianischen Kalenders ab.

10

int getLeastMaximum(int field)

Gibt den niedrigsten Maximalwert für das angegebene Feld zurück, wenn es variiert.

11

int getMaximum(int-Feld)

Gibt den Maximalwert für das angegebene Feld zurück.

12

Datum getTime()

Ruft die aktuelle Uhrzeit dieses Kalenders ab.

13

long getTimeInMillis()

Ruft die aktuelle Zeit dieses Kalenders als long ab.

14

Zeitzone getTimeZone()

Ruft die Zeitzone ab.

15

int getMinimum(int field)

Gibt den Mindestwert für das angegebene Feld zurück.

16

int hashCode()

Überschreibt hashCode.

17

boolean isLeapYear(int year)

Bestimmt, ob das angegebene Jahr ein Schaltjahr ist.

18

void roll(int field, boolean up)

Addiert oder subtrahiert (nach oben/unten) eine einzelne Zeiteinheit im angegebenen Zeitfeld, ohne größere Felder zu ändern.

19

void set(int field, int value)

Setzt das Zeitfeld mit dem gegebenen Wert.

20

void set(int year, int month, int date)

Legt die Werte für die Felder Jahr, Monat und Datum fest.

21

void set(int year, int month, int date, int hour, int minute)

Legt die Werte für die Felder Jahr, Monat, Datum, Stunde und Minute fest.

22

void set(int year, int month, int date, int hour, int minute, int second)

Legt die Werte für die Felder Jahr, Monat, Datum, Stunde, Minute und Sekunde fest.

23

void setGregorianChange(Datum Datum)

Legt das Änderungsdatum des Gregorianischen Kalenders fest.

24

void setTime(Datum Datum)

Legt die aktuelle Zeit dieses Kalenders mit dem angegebenen Datum fest.

25

void setTimeInMillis(long millis)

Legt die aktuelle Zeit dieses Kalenders aus dem angegebenen langen Wert fest.

26

void setTimeZone(Zeitzonenwert)

Legt die Zeitzone mit dem angegebenen Zeitzonenwert fest.

27

String zuString()

Gibt eine Zeichenfolgendarstellung dieses Kalenders zurück.

Beispiel

Live-Demo
import java.util.*;
public class GregorianCalendarDemo {

   public static void main(String args[]) {
      String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", 
         "Oct", "Nov", "Dec"};
      
      int year;
      // Create a Gregorian calendar initialized
      // with the current date and time in the
      // default locale and timezone.
      
      GregorianCalendar gcalendar = new GregorianCalendar();
      
      // Display current time and date information.
      System.out.print("Date: ");
      System.out.print(months[gcalendar.get(Calendar.MONTH)]);
      System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
      System.out.println(year = gcalendar.get(Calendar.YEAR));
      System.out.print("Time: ");
      System.out.print(gcalendar.get(Calendar.HOUR) + ":");
      System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
      System.out.println(gcalendar.get(Calendar.SECOND));

      // Test if the current year is a leap year
      if(gcalendar.isLeapYear(year)) {
         System.out.println("The current year is a leap year");
      }else {
         System.out.println("The current year is not a leap year");
      }
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Date: Apr 22 2009
Time: 11:25:27
The current year is not a leap year

Eine vollständige Liste der in der Calendar-Klasse verfügbaren Konstanten finden Sie in der Standard-Java-Dokumentation.


Java

  1. C#-Klasse und -Objekt
  2. Wie bekomme ich das aktuelle Datum und die Uhrzeit in Python?
  3. Java-Variablen und Literale
  4. Java-Ausdrücke, -Anweisungen und -Blöcke
  5. Java-Klasse und -Objekte
  6. Abstrakte Java-Klasse und abstrakte Methoden
  7. Java verschachtelte und innere Klasse
  8. Java-Singleton-Klasse
  9. Java-Wurf und Würfe
  10. Java Autoboxing und Unboxing