Latest web development tutorials

Java Datum Zeit

Datum java.util Paket enthält Klassen, das aktuelle Datum und die Uhrzeit zu verkapseln. Date-Klasse bietet zwei Konstrukteuren ein Date-Objekt zu instanziieren.

Der erste Konstruktor verwendet das aktuelle Datum und die Uhrzeit, das Objekt zu initialisieren.

Date( )

Der zweite Konstruktor akzeptiert einen Parameter, der die Anzahl der Millisekunden seit Januar 1, 1970 von.

Date(long millisec)

Nach dem Date-Objekt erstellt wird, können Sie die folgende Methode aufrufen.

Nein. Verfahren und Beschreibung
1 boolean nach (Datum Datum)
Wenn diese Methode aufgerufen wird, wenn das Date-Objekt nach dem angegebenen Datum true zurück, andernfalls wird false zurückgegeben.
2 boolean vor (Datum Datum)
Wenn diese Methode aufgerufen wird, wenn das Date-Objekt vor dem angegebenen Datum true zurück, andernfalls wird false zurückgegeben.
3 Object clone ()
Gibt eine Kopie dieses Objekts.
4 int compareTo (Datum Datum)
Vergleichen Sie diese Methode wird aufgerufen, wenn das Date-Objekt mit dem angegebenen Datum. Rückgabewert 0, wenn die beiden gleich sind. Rufen Sie Objekt vor dem angegebenen Datum eine negative Zahl zurückgibt. Rufen Sie Objekt nach dem angegebenen Datum eine positive Zahl zurückgegeben.
5 int compareTo (Object obj)
Wenn obj Datumstyp ist, ist der Betrieb entspricht compareTo (Datum). Andernfalls löst es Classcast.
6 boolean equals (Object Datum)
Beim Aufruf dieser Methode und das Date-Objekt ist zu dem angegebenen Datum gleich, wenn true zurück, andernfalls false.
7 lange getTime ()
Es gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 GMT dieses Date-Objekt repräsentiert.
8 int hashCode ()
Gibt den Hash-Code-Wert für dieses Objekt.
9 Leere setTime (lange Zeit)

Selbst 1. Januar 1970 00:00:00 GMT Millisekunden später die Uhrzeit und das Datum einzustellen.
10 String toString ()
Wandlungstag String Objektdarstellung, und gibt die Zeichenfolge.

Holen Sie sich das aktuelle Datum und die Uhrzeit

Java wird das aktuelle Datum und die Zeit ist sehr einfach, das Date-Objekt toString () -Methode verwenden, um das aktuelle Datum und die Uhrzeit gedruckt werden, wie folgt:

import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());
   }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

Mon May 04 09:51:52 CDT 2013

Daten vergleichen

Java verwendet drei Methoden, um die folgenden zwei Zeitpunkte zu vergleichen:

  • Verwenden Sie getTime () -Methode zwei Daten zu erhalten (1. Januar 1970 durch die Anzahl der Millisekunden seit), dann vergleichen Sie die beiden Werte.
  • Verwenden Sie vor (), nach () und equals (). Zum Beispiel einen Monat zuvor 12 als 18, das neue Datum (99, 2, 12) .before (new Date (99, 2, 18)) gibt true zurück.
  • Verwenden Sie compareTo () -Methode, die durch die Schnittstelle Comparable definiert ist, implementiert Date-Klasse diese Schnittstelle.

Die Verwendung Simple um Datum-

Simple Klasse ist eine locale sensitiv für die Formatierung und das Parsen Daten. Simple können Sie beliebige benutzerdefinierte Format von Datum und Uhrzeit wählen zu laufen. Zum Beispiel:

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

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

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

Einfache Dateformat-Codierung

Zeitmusterkette wird verwendet, um das Zeitformat zu spezifizieren. In diesem Modus werden alle ASCII-Buchstaben reserviert als Musterbuchstaben sind wie folgt definiert:

Schreiben Beschreibung Beispiel
G Ära AD
y Vier Jahre 2001
M Monat Juli oder 07
d Monat Datum 10
h AM / PM (1 ~ 12) Stunden-Format 12
H Die Stunde des Tages (0 bis 23) 22
m Die Anzahl der Minuten 30
s Sekunden 55
S Millisekunden 234
E Tag der Woche Dienstag
D Tag des Jahres 360
F Die ersten Wochen des Monats der Woche 2 (zweite Mi. im Juli)
w In den ersten Wochen des Jahres 40
W Die ersten Wochen des Monats 1
ein AM / PM Markierung PM
k Die Stunde des Tages (1 bis 24) 24
K AM / PM (0 ~ 11) Stunden-Format 10
z Zeitzone Eastern Standard Time
' Text-Trennzeichen Delimiter
" Einfache Anführungszeichen `

Verwenden Sie printf Format Daten

printf Verfahren leicht Uhrzeit und das Datum werden können formatiert. Verwenden Sie zwei-Letter-Format, es beginnt mit t und in der folgenden Tabelle am Ende eines Briefes. Zum Beispiel:

import java.util.Date;

public class DateDemo {

  public static void main(String args[]) {
     // 初始化 Date 对象
     Date date = new Date();

     // 使用toString()显示日期和时间
     String str = String.format("Current Date/Time : %tc", date );

     System.out.printf(str);
  }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

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

Wenn Sie das Angebot Datum zu wiederholen, dann diese Methode verwenden, jeder Teil davon zu formatieren, ist ein wenig kompliziert. So können Sie ein Format-String verwenden, wies Indexparameter formatiert werden.

Der Index muss sofort% zurück, und muss mit $ enden. Zum Beispiel:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用toString()显示日期和时间
       System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                         "Due date:", date);
   }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

Due date: February 09, 2004

Alternativ können Sie die <Flag verwenden. Es zeigt zuvor Parameter formatiert wieder verwendet zu werden. Zum Beispiel:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 显示格式化时间
       System.out.printf("%s %tB %<te, %<tY", 
                         "Due date:", date);
   }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

Due date: February 09, 2004

Die Datums- und Zeitumstellung Zeichen

Charakter Beschreibung Beispiel
c Vollständige Datum und Uhrzeit Mo 4. Mai 09.51.52 CDT 2009
F ISO 8601-Format Datum 2004-02-09
D US-Datumsformat (Monat / Tag / Jahr) 02/09/2004
T Zeit 24 Stunden 18.05.19
r 12-Stunden-Zeit 18.05.19
R 24-Stunden-Zeit, nicht enthalten Sekunden 18.05
Y 4 Jahr (mit führender Null) 2004
y Nach zwei Jahren (mit führender Null) 04
C Vor 2 Jahren (mit führender Null) 20
B Vollständiger Name des Monats Februar
b Monat Akronym Februar
n 2 Monate (mit führender Null) 02
d 2 Tage (mit führender Null) 03
e 2 Tage (ohne die führende 0) 9
A Woche voller Name Montag
ein Kurzwoche Mon
j 3 Jahren (mit führender Null) 069
H 2 Stunden (mit führender Null), 00-23 18
k 2 Stunden (ohne die erste 0), 0-23 18
ich 2 Stunden (mit führender Null), 01-12 06
l 2 Stunden (ohne die erste 0), 1-12 6
M 2 Minuten (mit führender Null) 05
S 2 Sekunden (mit führender Null) 19
L 3 ms (mit führender Null) 047
N 9 ns (mit führender Null) 047000000
P am Nachmittag des Flag Aktivierte PM
p Am Nachmittag des Klein Logo pm
z Offset von GMT in RFC 822 Digitale -0800
Z Zeitzone PST
s Die Anzahl der Sekunden seit 1970-01-01 00:00:00 GMT 1078884319
Q Seit 1970-01-01 00:00:00 GMT Cent wunderbar 1078884319047

Es gibt andere nützliche Datum und Zeit der Klasse. Für weitere Informationen können Sie auf der Java-Standard-Dokumentation.


Das Parsen einer Zeichenfolge in einer Zeit,

Simple Klasse hat einige zusätzliche Methoden, vor allem analysieren (), die den gegebenen Simple Objekt-Speicherformat zu folgen versucht, die Zeichenfolge zu analysieren. Zum Beispiel:

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

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

$ java DateDemo
1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
$ java DateDemo 2007-12-01
2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

Java ruhend (Schlaf)

sleep () macht den aktuellen Thread in den stagnierenden Zustand (blockiert den aktuellen Thread), so dass die CPU-Auslastung, Zweck allein den aktuellen Thread zu halten, ist die CPU-Ressourcen belegen in dem Verfahren erhalten einige Zeit in Anspruch Chance einen weiteren Thread der Ausführung zu verlassen.

Sie können das Programm Schlaf einer Millisekunde langen Zeitraum oder zu einem Ihres Computers Leben lassen. Zum Beispiel wird tief und das folgende Programm 3 Sekunden:

import java.util.*;
  
public class SleepDemo {
   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(1000*3);   // 休眠3秒
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

Messzeit

Hier ist ein Beispiel, das Ihnen zeigt, wie Zeitintervalle zu messen (in Millisekunden):

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

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

Klasse Kalender

Wir sind nun in der Lage, ein Date-Objekt zu formatieren und zu schaffen, sondern wie wir können einen bestimmten Teil davon aktuellen Daten, wie Stunden, Tage oder Minuten? Wie können wir in diesen Teilen des Datums plus oder minus gesetzt und empfangen werden ? die Antwort ist Kalender Kategorie zu verwenden.

Viele leistungsfähige Funktionen als die Date-Klasse Calendar-Klasse, sondern auch bei der Umsetzung als die Date-Klasse-Komplex.

Calendar-Klasse ist eine abstrakte Klasse, die eine bestimmte Unterklasse von Objekten in der tatsächlichen Verwendung implementiert, die Erstellung von Objekten ist transparent für den Programmierer muss nur erstellt werden, um die getInstance Methode zu verwenden.

Erstellen Sie ein Kalender-Objekt, das aktuelle Systemdatum

Calendar c = Calendar.getInstance();//默认是当前日期

Erstellen Sie ein Kalender-Objekt angegebene Datum

Verwenden Sie die Kalender-Klasse eine bestimmte Zeit darstellt, müssen Sie zunächst ein Kalender-Objekt erstellen, und setzt dann die Objekt Datum Parameter abzuschließen.

//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);

Kalender Klassenobjekt Feldtyp

Kalendertyp an diesen Konstanten repräsentieren unterschiedliche Bedeutungen haben, dachten viele, diese Klasse verwendet, tatsächlich innerhalb der jdk

Konstante Beschreibung
Calendar.YEAR Jahre
Calendar.MONTH Monat
Calendar.DATE Datum
Calendar.DAY_OF_MONTH Datum, und identisch mit dem oben genannten Bereichen Bedeutung
Calendar.HOUR 12-Stunden-Stunde
Calendar.HOUR_OF_DAY 24-Stunden-Stunde
Calendar.MINUTE Minute
Calendar.SECOND zweite
Calendar.DAY_OF_WEEK Tag der Woche

Einstellen der Kalenderklasse Objektinformationen

Set - Einstellungen

Wie zum Beispiel:

Calendar c1 = Calendar.getInstance();

Aufruf:

public final void set(int year,int month,int date)
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12

Verwenden Sie die Feldtyp-Einstellungen

Bei der Einstellung nur ein Feld, wie Valuta eingestellt werden können die folgenden Methoden verwenden:

public void set(int field,int value)

Das Date-Objekt repräsentiert c1 bis 10, alle anderen Werte gesetzt werden neu berechnet

c1.set(Calendar.DATE,10);

Das Objekt steht für das Jahr c1 bis 2008, alle anderen Werte gesetzt werden neu berechnet

c1.set(Calendar.YEAR,2008);

Bedeutung der anderen Feldeigenschaften so eingestellt,

In einstellen

Calendar c1 = Calendar.getInstance();

Das Zieldatum plus 10 c1, c1 auch als 10 Tage nach dem Tag ausgedrückt, alle anderen Werte werden neu berechnet

c1.add(Calendar.DATE, 10);

Das Zieldatum minus 10 c1, c1 auch vor als Datum 10 Tagen, alle anderen Werte neu berechnet werden

<pre>c1.add(Calendar.DATE, -10);

addieren andere Feldeigenschaften bedeutet so

Calendar-Klasse-Objekt zu erhalten Informationen

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

GregorianCalendar Klasse

Kalender-Klasse implementiert den gregorianischen Kalender, GregorianCalendar Calendar-Klasse eine konkrete Umsetzung ist.

Kalender von getInstance () Methode gibt einen Standard mit dem aktuellen Gebietsschema und Zeitzone initialisiert GregorianCalendar Objekt. GregorianCalendar definiert zwei Felder: AD und BC. Diese stellen zwei Kalender die Ära definiert.

Im Folgenden sind einige GregorianCalendar Objektkonstruktor:

Nein . Constructor Beschreibung
1 GregorianCalendar ()
Wenn Sie die Standard-Locale Standardzeitzone haben Konstruiert einen Standard GregorianCalendar Strom.
2 GregorianCalendar (int Jahr, int Monat, int Datum)
Wenn Sie die Standard-Locale Standardzone haben Konstruiert eine GregorianCalendar mit dem Satz angegebenen Datum
3 GregorianCalendar (int Jahr, int Monat, int Datum, int Stunde, int Minute)
Konstruiert ein bestimmtes Datum und Zeiteinstellungen ein Standardgebietsschema die Standardzeitzone GregorianCalendar haben.
4 GregorianCalendar (int Jahr, int Monat, int Datum, int Stunde, int Minute, int Sekunde)
Konstruiert ein bestimmtes Datum und Zeiteinstellungen ein Standardgebietsschema die Standardzeitzone GregorianCalendar haben.
5 GregorianCalendar (Locale aLocale)
Wenn Sie die Standard-Locale Bereich einzustellen haben Konstruiert einen GregorianCalendar basierend aktuelle Uhrzeit an.
6 GregorianCalendar (Time - Zone - Zone)
In der Standard-Locale angegebenen Zeitzone ein GregorianCalendar bauen auf der aktuellen Zeit basiert.
7 GregorianCalendar (Time - Zone Zone, Locale aLocale)
In einem bestimmten Gebietsschema angegeben Zeitzone Konstruiert ein GregorianCalendar basierend auf der aktuellen Zeit.

Hier ist eine Liste von GregorianCalendar Klasse einige nützliche Methoden bestimmt:

Nein . Verfahren und Beschreibung
1 void add (int Feld, int Menge )
Nach den Kalender Regeln festgelegt (signiert) viel Zeit auf das Kalenderfeld gegeben.
2 protected void computeFields ()
UTC ms Wandlungszeit Schwellenwert
3 protected void computeTime ()
Bedecken Kalender, Wandelt Zeitfeldwerte UTC als Millisekunden
4 boolean equals (Object obj)
Vergleicht diese GregorianCalendar mit dem angegebenen Objekt.
5 int get (int Feld)
Ruft den Zeitwert des angegebenen Feldes
6 int getActualMaximum (int Feld)
Gibt das aktuelle Datum, den Maximalwert von einem bestimmten Bereich
7 int getActualMinimum (int Feld)
Gibt das aktuelle Datum, den Mindestwert von einem bestimmten Bereich
8 int getGreatestMinimum (int Feld)
GregorianCalendar Gibt den höchsten Mindestwert für den jeweiligen Kalenderfeld.
9 Datum getGregorianChange ()
Erhalten Sie gregorianischen Datum ändern.
10 int getLeastMaximum (int Feld)
Returns diese GregorianCalendar Instanz eines bestimmten Kalenderfeld der niedrigste Maximalwert
11 int getMaximum (int Feld)
Gibt GregorianCalendar Instanz die maximale Kalenderfeld angegeben.
12 Datum getTime ()
Holen Sie sich das aktuelle Kalenderzeit.
13 lange getTimeInMillis ()
Holen Sie sich einen Kalender mit einem Long-Integer-Darstellung der aktuellen Zeit
14 Time - Zone getTimeZone ()
Holen Zeitzone.
15 int getMinimum (int Feld)
Zurück auf den Minimalwert eines bestimmten Feldes.
16 int hashCode ()
Rewrite hashCode.
17 boolean IsLeapYear (int Jahr)
Bestimmt, ob das angegebene Jahr ein Schaltjahr ist.
18 Leere Rolle (int Feld, boolean up )
Auf dem Zeitfeld gegeben hinzuzufügen oder eine einzelne Zeiteinheit (oben / unten) subtrahieren, ohne größere Felder zu ändern.
19 Leere Satz (int Feld, int value )
Mit dem gegebenen Zeitwertfeld.
20 Leere set (int Jahr, int Monat , int Datum)
Stellen Sie das Jahr, den Wert von Monat und Tag.
21 Leere set (int Jahr, int Monat , int Datum, int Stunde, int Minute)
Stellen Sie das Jahr, Monat, Tag, Stunde, Minute Wert.
22 Leere set (int Jahr, int Monat , int Datum, int Stunde, int Minute, int Sekunde)
Stellen Sie das Jahr, Stunde, Minute und Sekunde Werte des Monats Tag.
23 Leere setGregorianChange (Datum Datum)
Stellt die GregorianCalendar Datum ändern.
24 Leere setTime (Datum Datum)
Mit dem angegebenen Datum aktuelle Uhrzeit des eingestellten Kalender.
25 Leere setTimeInMillis (long millis)
Mit einer bestimmten Anzahl von langen Typ ist aktuelle Zeit des Millisekunden-Kalender.
26 Leere setTimeZone (Time - Zone - Wert)
Mit Zeitzoneneinstellungen der aktuellen Zeitzone.
27 String toString ()
Gibt eine Zeichenfolge, die den Kalender darstellt.

Beispiele

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;
      // 初始化 Gregorian 日历
      // 使用当前时间和日期
      // 默认为本地时间和时区
      GregorianCalendar gcalendar = new GregorianCalendar();
      // 显示当前时间和日期的信息
      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));
      
      // 测试当前年份是否为闰年
      if(gcalendar.isLeapYear(year)) {
         System.out.println("当前年份是闰年");
      }
      else {
         System.out.println("当前年份不是闰年");
      }
   }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

Date: Apr 22 2009
Time: 11:25:27
当前年份不是闰年