Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java - Datum en tijd

Java geeft de Datum klasse beschikbaar in java.util pakket bevat deze klasse de huidige datum en tijd.

De klasse Date ondersteunt twee constructors zoals weergegeven in de volgende tabel.

Zr.nr. Constructeur en beschrijving
1

Datum( )

Deze constructor initialiseert het object met de huidige datum en tijd.

2

Datum (lange millisec)

Deze constructor accepteert een argument dat gelijk is aan het aantal milliseconden dat is verstreken sinds middernacht, 1 januari 1970.

Hieronder volgen de methoden van de datumklasse.

Zr.nr. Methode en beschrijving
1

booleaans na(datum datum)

Retourneert true als het aanroepende object Date een datum bevat die later is dan de datum die is opgegeven door date, anders wordt false geretourneerd.

2

boolean before(Date date)

Retourneert true als het aanroepende object Date een datum bevat die eerder is dan de datum die is opgegeven door date, anders wordt false geretourneerd.

3

Objectkloon( )

Dupliceert het aanroepende object Date.

4

int CompareTo(Date date)

Vergelijkt de waarde van het aanroepende object met die van datum. Retourneert 0 als de waarden gelijk zijn. Retourneert een negatieve waarde als het aanroepende object eerder is dan de datum. Retourneert een positieve waarde als het aanroepende object later is dan de datum.

5

int CompareTo(Object obj)

Werkt op dezelfde manier als CompareTo(Date) als obj van de klasse Date is. Anders genereert het een ClassCastException.

6

boolean is gelijk aan (objectdatum)

Retourneert true als het aanroepende object Date dezelfde tijd en datum bevat als de datum die is opgegeven op datum, anders wordt false geretourneerd.

7

lange getTime( )

Retourneert het aantal milliseconden dat is verstreken sinds 1 januari 1970.

8

int hashCode( )

Retourneert een hash-code voor het aanroepende object.

9

void setTime(lange tijd)

Stelt de tijd en datum in zoals gespecificeerd door tijd, wat een verstreken tijd in milliseconden vanaf 1 januari 1970 om middernacht vertegenwoordigt.

10

String naarString( )

Converteert het aanroepende object Date naar een tekenreeks en retourneert het resultaat.

Huidige datum en tijd ophalen

Dit is een zeer eenvoudige methode om de huidige datum en tijd in Java te krijgen. U kunt een eenvoudig object Date gebruiken met toString() methode om de huidige datum en tijd als volgt af te drukken −

Voorbeeld

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());
   }
}

Dit levert het volgende resultaat op −

Uitvoer

on May 04 09:51:52 CDT 2009

Datumvergelijking

Hieronder volgen de drie manieren om twee datums te vergelijken −

  • U kunt getTime( ) gebruiken om het aantal milliseconden te berekenen dat is verstreken sinds 1 januari 1970, middernacht, voor beide objecten en deze twee waarden vervolgens te vergelijken.

  • U kunt de methoden before( ), after( ) en equals( ) gebruiken. Omdat bijvoorbeeld de 12e van de maand voor de 18e valt, geeft nieuwe Date(99, 2, 12).before(new Date (99, 2, 18)) true terug.

  • U kunt de methode CompareTo( ) gebruiken, die wordt gedefinieerd door de interface Comparable en geïmplementeerd door Date.

Datumopmaak met SimpleDateFormat

SimpleDateFormat is een concrete klasse voor het opmaken en ontleden van datums op een locale-gevoelige manier. Met SimpleDateFormat kunt u beginnen met het kiezen van door de gebruiker gedefinieerde patronen voor datum-tijd-opmaak.

Voorbeeld

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));
   }
}

Dit levert het volgende resultaat op −

Uitvoer

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

Eenvoudige datumnotatie-indelingscodes

Gebruik een tekenreeks voor een tijdpatroon om de tijdnotatie op te geven. In dit patroon zijn alle ASCII-letters gereserveerd als patroonletters, die als volgt worden gedefinieerd −

Teken Beschrijving Voorbeeld
G Tijdperk aanduiding ADVERTENTIE
j Jaar in vier cijfers 2001
M Maand in jaar Juli of 07
d Dag in maand 10
u Uur in A.M./P.M. (1~12) 12
H Uur in dag (0~23) 22
m Minuut in uur 30
s Seconde in minuut 55
S Milliseconde 234
E Dag in week Dinsdag
D Dag in jaar 360
F Dag van de week in maand 2 (tweede woensdag in juli)
w Week in jaar 40
W Week in maand 1
een AM/PM markering PM
k Uur in dag (1~24) 24
K Uur in A.M./P.M. (0~11) 10
z Tijdzone Eastern Standard Time
' Escape voor tekst Scheidingsteken
" Enkel aanhalingsteken `

Datumopmaak met printf

Datum- en tijdnotatie kan heel eenvoudig worden gedaan met printf methode. U gebruikt een indeling van twee letters, beginnend met t en eindigend op een van de letters van de tabel zoals weergegeven in de volgende code.

Voorbeeld

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);
   }
}

Dit levert het volgende resultaat op −

Uitvoer

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

Het zou een beetje dwaas zijn als je de datum meerdere keren zou moeten invoeren om elk onderdeel te formatteren. Om die reden kan een format string de index aangeven van het argument dat moet worden opgemaakt.

De index moet onmiddellijk het % volgen en moet worden afgesloten met een $.

Voorbeeld

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);
   }
}

Dit levert het volgende resultaat op −

Uitvoer

Due date: February 09, 2004

Als alternatief kunt u de vlag

Voorbeeld

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);
   }
}

Dit levert het volgende resultaat op −

Uitvoer

Due date: February 09, 2004

Datum- en tijdconversietekens

Teken Beschrijving Voorbeeld
c Volledige datum en tijd Ma 04 mei 09:51:52 CDT 2009
F ISO 8601-datum 2004-02-09
D VS opgemaakte datum (maand/dag/jaar) 09/02/2004
T 24 uur tijd 18:05:19
r 12 uur tijd 06:05:19 pm
R 24 uur, geen seconden 18:05
J Viercijferig jaartal (met voorloopnullen) 2004
y Laatste twee cijfers van het jaar (met voorloopnullen) 04
C Eerste twee cijfers van het jaar (met voorloopnullen) 20
B Naam volledige maand februari
b Afgekorte maandnaam Feb
m Tweecijferige maand (met voorloopnullen) 02
d Tweecijferige dag (met voorloopnullen) 03
e Tweecijferige dag (zonder voorloopnullen) 9
Een Volledige naam van de weekdag Maandag
een Afgekorte naam van de weekdag Ma
j Driecijferige dag van het jaar (met voorloopnullen) 069
H Tweecijferig uur (met voorloopnullen), tussen 00 en 23 18
k Tweecijferig uur (zonder voorloopnullen), tussen 0 en 23 18
Ik Tweecijferig uur (met voorloopnullen), tussen 01 en 12 06
l Tweecijferig uur (zonder voorloopnullen), tussen 1 en 12 6
M Tweecijferige minuten (met voorloopnullen) 05
S Tweecijferige seconden (met voorloopnullen) 19
L Driecijferige milliseconden (met voorloopnullen) 047
N Nanoseconden van negen cijfers (met voorloopnullen) 047000000
P Hoofdletters ochtend- of middagmarkering PM
p Kleine letters ochtend- of middagmarkering pm
z RFC 822 numerieke offset vanaf GMT -0800
Z Tijdzone PST
s Seconden sinds 1970-01-01 00:00:00 GMT 1078884319
Q Milliseconden sinds 1970-01-01 00:00:00 GMT 1078884319047

Er zijn andere nuttige klassen met betrekking tot datum en tijd. Voor meer details kunt u de Java Standard-documentatie raadplegen.

Snaren ontleden in datums

De klasse SimpleDateFormat heeft enkele aanvullende methoden, met name parse( ), die probeert een tekenreeks te ontleden volgens de indeling die is opgeslagen in het gegeven SimpleDateFormat-object.

Voorbeeld

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); 
      }
   }
}

Een voorbeeld van het bovenstaande programma zou het volgende resultaat opleveren −

Uitvoer

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

Even slapen

U kunt slapen gedurende elke periode van één milliseconde tot de levensduur van uw computer. Het volgende programma slaapt bijvoorbeeld 3 seconden −

Voorbeeld

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!"); 
      }
   }
}

Dit levert het volgende resultaat op −

Uitvoer

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

Verstreken tijd meten

Soms moet u het tijdstip in milliseconden meten. Dus laten we het bovenstaande voorbeeld nogmaals herschrijven −

Voorbeeld

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!");
      }
   }
}

Dit levert het volgende resultaat op −

Uitvoer

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

GregorianCalendar Class

GregorianCalendar is een concrete implementatie van een klasse Calendar die de normale Gregoriaanse kalender implementeert waarmee u bekend bent. We hebben de Agenda-klasse niet besproken in deze tutorial, je kunt hiervoor de standaard Java-documentatie opzoeken.

De getInstance( ) methode van Calendar retourneert een GregorianCalendar geïnitialiseerd met de huidige datum en tijd in de standaard locale en tijdzone. GregorianCalendar definieert twee velden:AD en BC. Deze vertegenwoordigen de twee tijdperken gedefinieerd door de Gregoriaanse kalender.

Er zijn ook verschillende constructors voor GregorianCalendar-objecten −

Zr.nr. Constructeur en beschrijving
1

Gregoriaanse kalender()

Stelt een standaard Gregoriaanse kalender samen met de huidige tijd in de standaardtijdzone met de standaardlandinstelling.

2

Gregoriaanse kalender(int jaar, int maand, int datum)

Stelt een Gregoriaanse kalender samen met de opgegeven datum ingesteld in de standaard tijdzone met de standaard locale.

3

Gregoriaanse kalender(int jaar, int maand, int datum, int uur, int minuut)

Stelt een Gregoriaanse kalender samen met de gegeven datum en tijd ingesteld voor de standaard tijdzone met de standaard locale.

4

Gregoriaanse kalender(int jaar, int maand, int datum, int uur, int minuut, int seconde)

Stelt een Gregoriaanse kalender samen met de gegeven datum en tijd ingesteld voor de standaard tijdzone met de standaard locale.

5

GregorianCalendar(Locale aLocale)

Stelt een Gregoriaanse kalender samen op basis van de huidige tijd in de standaardtijdzone met de opgegeven landinstelling.

6

Gregoriaanse kalender (TimeZone-zone)

Stelt een Gregoriaanse kalender samen op basis van de huidige tijd in de gegeven tijdzone met de standaard locale.

7

GregorianCalendar(TimeZone zone, Locale aLocale)

Stelt een Gregoriaanse kalender samen op basis van de huidige tijd in de gegeven tijdzone met de gegeven landinstelling.

Hier is de lijst met enkele nuttige ondersteuningsmethoden die worden geleverd door de GregorianCalendar-klasse −

Zr.nr. Methode en beschrijving
1

void add(int veld, int bedrag)

Voegt de gespecificeerde (ondertekende) hoeveelheid tijd toe aan het gegeven tijdveld, gebaseerd op de regels van de kalender.

2

protected void computeFields()

Converteert UTC in milliseconden naar tijdveldwaarden.

3

beschermde void computeTime()

Overschrijft kalender. Converteert tijdveldwaarden naar UTC in milliseconden.

4

boolean is gelijk aan(Object obj)

Vergelijkt deze Gregoriaanse kalender met een objectreferentie.

5

int get(int veld)

Haalt de waarde op voor een bepaald tijdveld.

6

int getActualMaximum(int veld)

Retourneert de maximale waarde die dit veld zou kunnen hebben, gegeven de huidige datum.

7

int getActualMinimum(int veld)

Retourneert de minimale waarde die dit veld zou kunnen hebben, gegeven de huidige datum.

8

int getGreatestMinimum(int veld)

Retourneert de hoogste minimumwaarde voor het gegeven veld als dit varieert.

9

Datum getGregorianChange()

Krijgt de wijzigingsdatum van de Gregoriaanse kalender.

10

int getLeastMaximum(int veld)

Retourneert de laagste maximale waarde voor het gegeven veld als deze varieert.

11

int getMaximum(int veld)

Retourneert de maximale waarde voor het opgegeven veld.

12

Datum getTime()

Krijgt de huidige tijd van deze kalender.

13

lang getTimeInMillis()

Krijgt de huidige tijd van deze kalender als een lange.

14

TimeZone getTimeZone()

Krijgt de tijdzone.

15

int getMinimum(int veld)

Retourneert de minimumwaarde voor het opgegeven veld.

16

int hashCode()

Overschrijft hashCode.

17

boolean isLeapYear(int year)

Bepaalt of het opgegeven jaar een schrikkeljaar is.

18

void roll(int field, boolean up)

Optellen of aftrekken (omhoog/omlaag) een enkele tijdseenheid op het gegeven tijdveld zonder grotere velden te wijzigen.

19

void set(int veld, int waarde)

Stelt het tijdveld in met de gegeven waarde.

20

void set(int jaar, int maand, int datum)

Stelt de waarden in voor de velden jaar, maand en datum.

21

void set(int jaar, int maand, int datum, int uur, int minuut)

Stelt de waarden in voor de velden jaar, maand, datum, uur en minuut.

22

void set(int jaar, int maand, int datum, int uur, int minuut, int seconde)

Stelt de waarden in voor de velden jaar, maand, datum, uur, minuut en seconde.

23

Void setGregorianChange(Datum datum)

Stelt de wijzigingsdatum van de Gregoriaanse kalender in.

24

nietig setTime(Datum datum)

Stelt de huidige tijd van deze kalender in met de opgegeven datum.

25

void setTimeInMillis(lange millis)

Stelt de huidige tijd van deze kalender in vanaf de opgegeven lange waarde.

26

void setTimeZone(TimeZone-waarde)

Stelt de tijdzone in met de gegeven tijdzonewaarde.

27

String toString()

Retourneert een tekenreeksrepresentatie van deze kalender.

Voorbeeld

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");
      }
   }
}

Dit levert het volgende resultaat op −

Uitvoer

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

Voor een volledige lijst van constanten die beschikbaar zijn in de klasse Calendar, kunt u de standaard Java-documentatie raadplegen.


Java

  1. C# klasse en object
  2. Hoe de huidige datum en tijd in Python te krijgen?
  3. Java-variabelen en -letters
  4. Java-uitdrukkingen, verklaringen en blokken
  5. Java-klasse en objecten
  6. Java abstracte klasse en abstracte methoden
  7. Java geneste en innerlijke klasse
  8. Java Singleton-klasse
  9. Java worp en worpen
  10. Java autoboxing en unboxing
  11. Java - Serialisatie