Latest web development tutorials

Java Date Heure

Date de package java.util fournit des classes pour encapsuler la date et l'heure actuelle. Date de classe fournit deux constructeurs pour instancier un objet Date.

Le premier constructeur utilise la date et l'heure pour initialiser l'objet.

Date( )

Le deuxième constructeur accepte un paramètre, qui est le nombre de millisecondes depuis le 1er Janvier, 1970.

Date(long millisec)

Après l'objet Date est créé, vous pouvez appeler la méthode suivante.

Non. Méthode et description
1 booléen après (date date)
Si cette méthode est appelée lorsque l'objet Date après la date spécifiée renvoie true, sinon il retourne faux.
2 booléen avant (date date)
Si cette méthode est appelée lorsque l'objet Date avant la date spécifiée renvoie true, sinon il retourne faux.
3 Object clone ()
Renvoie une copie de cet objet.
4 int compareTo (Date Date)
Comparez cette méthode est appelée lorsque l'objet Date à la date indiquée. Retour 0 lorsque les deux sont égaux. Appel objet avant la date spécifiée renvoie un nombre négatif. Appelez objet après la date spécifiée est retourné un nombre positif.
5 int compareTo (Object obj)
Si obj est le type de date, l'opération est équivalente à compareTo (Date). Dans le cas contraire, il jette ClassCastException.
6 boolean equals (date de l' objet)
Lorsque vous appelez cette méthode et l'objet Date est égale à la date spécifiée lors renvoie true, sinon retourne false.
7 longue getTime ()
Elle renvoie le nombre de millisecondes depuis le 1er Janvier 1970 à 00:00:00 GMT représenté par cet objet Date.
8 int hashCode ()
Renvoie la valeur de code de hachage pour cet objet.
9 setTime void ( de longue date)

Self 1er Janvier 1970 00:00:00 GMT millisecondes plus tard le temps de régler l'heure et la date.
10 String toString ()
Date de conversion de la représentation de l'objet String, et renvoie la chaîne.

Obtenir la date et l'heure

Java obtient la date et l'heure est très simple, utilisez la méthode objet Date toString () pour imprimer la date et l'heure comme suit:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

Mon May 04 09:51:52 CDT 2013

Comparer les dates

Java utilise trois méthodes pour comparer les deux dates suivantes:

  • Utiliser la méthode getTime () pour obtenir deux dates (1 Janvier 1970 au nombre de millisecondes depuis), puis de comparer les deux valeurs.
  • Utiliser avant (), après () et equals (). Par exemple, un mois plus tôt 12 à 18, la nouvelle date (99, 2, 12) .avant (new Date (99, 2, 18)) retourne vrai.
  • Utilisez la méthode compareTo (), qui est définie par l'interface Comparable, Date classe implémente cette interface.

L'utilisation SimpleDateFormat aux dates de format

classe SimpleDateFormat est une manière locale sensible pour le formatage et les dates d'analyse syntaxique. SimpleDateFormat vous permet de sélectionner un utilisateur personnalisé date et l'heure pour exécuter le format. Par exemple:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

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

Format DateFormat simple encodage

Temps chaîne de modèle est utilisé pour spécifier le format de l'heure. Dans ce mode, toutes les lettres ASCII sont réservés sous forme de lettres de motif sont définis comme suit:

lettre description exemple
sol Era marque AD
y Quatre ans 2001
M mois Juillet ou 07
Date Mois 10
h AM / PM format (1 ~ 12) heures 12
H L'heure de la journée (0 à 23) 22
m Le nombre de minutes 30
s secondes 55
S millisecondes 234
E Jour de la semaine mardi
Jour de l'année 360
fa Les premières semaines du mois de la semaine 2 (deuxième mercredi en Juillet)
w Les premières semaines de l'année 40
W Les premières semaines du mois 1
un AM / PM marque PM
k L'heure de la journée (1 à 24) 24
K AM / PM Format (0 ~ 11) heures 10
z fuseau horaire Heure normale de l'Est
' Séparateur de texte Séparateur
" Les guillemets simples `

dates de format Utiliser printf

méthode printf peut être facilement formaté heure et la date. Utilisez le format de deux lettres, il commence par t et dans le tableau suivant à la fin d'une lettre. Par exemple:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

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

Si vous avez besoin de répéter la date de l'offre, puis utiliser cette méthode pour formater chaque partie de celui-ci est un peu compliqué. Ainsi, vous pouvez utiliser une chaîne de format a être formaté paramètre index.

L'indice doit immédiatement% derrière, et doit se terminer par $. Par exemple:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

Due date: February 09, 2004

Alternativement, vous pouvez utiliser le <drapeau. Il montre préalablement formaté paramètres à utiliser à nouveau. Par exemple:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

Due date: February 09, 2004

La date et l'heure des caractères de conversion

caractère description exemple
c Complete Date et heure Lun 4 mai 09:51:52 CDT 2009
fa ISO format date 8601 2004-02-09
format de date US (mois / jour / année) 02/09/2004
T Temps 24 heures 18:05:19
r 12 heures 18:05:19
R le temps de 24 heures, ne comprend pas secondes 18h05
Y 4 Année (avec un zéro) 2004
y Après deux ans (avec un zéro) 04
C il y a 2 ans (avec un zéro) 20
B Nom complet mois février
b Mois Acronyme février
n 2 mois (avec un zéro) 02
2 jours (avec un zéro) 03
e 2 jours (sans le 0) 9
A Semaine nom complet lundi
un Petite semaine Mon
j 3 ans (avec un zéro) 069
H 2 heures (avec un zéro), 00-23 18
k 2 heures (sans le 0), 0-23 18
Je 2 heures (avec un zéro), 01-12 06
l 2 heures (sans le 0), 1-12 6
M 2 minutes (avec un zéro) 05
S 2 secondes (avec un zéro) 19
L 3 ms (avec un zéro) 047
N 9 ns (avec un zéro) 047000000
P Capitalisés l'après-midi du drapeau PM
p Dans l'après-midi du logo minuscule pm
z Décalage de GMT dans la RFC 822 numérique -0800
Z fuseau horaire PST
s Le nombre de secondes écoulées depuis le 1970-01-01 00:00:00 GMT 1078884319
Q Depuis 1970-01-01 00:00:00 GMT cents merveilleux 1078884319047

Il y a une autre date et l'heure de la classe utile. Pour plus de détails, vous pouvez vous référer à la documentation standard Java.


Parsing une chaîne à la fois

classe SimpleDateFormat a quelques méthodes supplémentaires, en particulier parse (), qui ont essayé de suivre le format de stockage d'objets SimpleDateFormat donné à analyser la chaîne. Par exemple:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

$ 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 en sommeil (sommeil)

sleep () rend le thread courant dans l'état stagnant (bloque le thread courant), de sorte que l'utilisation du processeur, le but est de garder le thread courant seul occuper les ressources CPU obtenus dans le processus de laisser un peu de temps au hasard un autre thread d'exécution.

Vous pouvez laisser le programme de sommeil une milliseconde longue période de temps ou à l'un de la vie de votre ordinateur. Par exemple, le programme suivant va dormir trois secondes:

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

Les exemples ci-dessus les résultats compilés sont les suivants:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

temps de mesure

Voici un exemple qui vous montre comment mesurer des intervalles de temps (en millisecondes):

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

Les exemples ci-dessus les résultats compilés sont les suivants:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

classe Calendrier

Nous sommes maintenant en mesure de formater et de créer un objet de date, mais comment nous pouvons définir et récupérer une partie spécifique de celui-ci des données de date, comme les heures, les jours, ou quelques minutes? Comment pouvons-nous dans ces parties de la date plus ou moins ? la réponse est d'utiliser la catégorie Calendrier.

De nombreuses fonctionnalités puissantes que la classe Calendar Date de la classe, mais aussi dans la mise en œuvre que le complexe de la classe Date.

classe Calendar est une classe abstraite qui implémente une sous-classe spécifique d'objets en utilisation réelle, la création d'objets est transparente pour le programmeur ne doit être créé pour utiliser la méthode getInstance.

Créer un objet Calendrier représentant la date actuelle du système

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

Créer une date objet Calendar spécifiée

Utilisez la classe Calendrier représente un moment donné, vous devez d'abord créer un objet de calendrier, puis définit les paramètres de la date de l'objet à remplir.

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

Calendrier type de champ objet de classe

Type de calendrier utilisé à ces constantes représentent des significations différentes, beaucoup pensaient cette classe sont effectivement utilisés dans le JDK

constante description
Calendar.YEAR ans
Calendar.MONTH mois
Calendar.DATE date
Calendar.DAY_OF_MONTH Date, et identique à la signification des champs ci-dessus
Calendar.HOUR heure à 12 heures
Calendar.HOUR_OF_DAY heure 24 heures
Calendar.MINUTE minute
Calendar.SECOND deuxième
Calendar.DAY_OF_WEEK Jour de la semaine

Réglage Calendrier informations sur l'objet de classe

paramètres Set

Tels que:

Calendar c1 = Calendar.getInstance();

Appel:

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

Utilisez les paramètres de type de champ

Si seulement défini un champ, comme la date de valeur peut être réglée en utilisant les méthodes suivantes:

public void set(int field,int value)

L'objet Date représente c1 est réglé sur 10, toutes les autres valeurs sont recalculées

c1.set(Calendar.DATE,10);

L'objet représente la c1 année est fixé à 2008, toutes les autres valeurs sont recalculées

c1.set(Calendar.YEAR,2008);

Signification des autres propriétés du champ réglé de telle sorte

Ajouter Réglage

Calendar c1 = Calendar.getInstance();

La date cible plus 10 c1, c1 est également exprimées en 10 jours après la date, toutes les autres valeurs sont recalculées

c1.add(Calendar.DATE, 10);

La date cible moins 10 c1, c1 est également exprimé comme une date il y a 10 jours, toutes les autres valeurs seront recalculées

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

ajouter un sens d'autres propriétés de champ afin

objet de classe Calendrier pour obtenir des informations

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

classe GregorianCalendar

classe Calendar implémente le calendrier Grégorien, classe GregorianCalendar Calendrier est une mise en œuvre concrète.

Calendrier des getInstance () retourne une valeur par défaut avec la zone de localisation et l'heure initialisée objet GregorianCalendar. GregorianCalendar définit deux champs: AD et BC. Celles-ci représentent deux calendrier défini l'époque.

Voici une liste de quelques-uns constructeur d'objet GregorianCalendar:

Non . Constructor et description
1 GregorianCalendar ()
Lorsque vous avez le temps de défaut zone locale par défaut Construit un courant GregorianCalendar par défaut.
2 GregorianCalendar (année, int mois, int date)
Lorsque vous avez la zone locale par défaut par défaut Construit un GregorianCalendar avec le jeu de date donnée
3 GregorianCalendar (année, int mois, la date, int heure, int minute)
Avoir une langue par défaut par défaut fuseau horaire à GregorianCalendar construit une date et l'heure indiquées.
4 GregorianCalendar (année, int mois, int jour, int heure, int minute, int seconde)
Avoir une langue par défaut par défaut fuseau horaire à GregorianCalendar construit une date et l'heure indiquées.
5 GregorianCalendar (Locale aLocale)
Lorsque vous devez définir la zone de localisation par défaut Construit une heure en fonction GregorianCalendar.
6 GregorianCalendar (zone TimeZone)
Dans le temps donné zone locale par défaut construire un GregorianCalendar basé sur l'heure actuelle.
7 GregorianCalendar (zone TimeZone, Locale aLocale)
Dans un fuseau horaire locale donnée donné Construit un GregorianCalendar basé sur l'heure actuelle.

Voici une liste de classe GregorianCalendar fournit quelques méthodes utiles:

Non . Méthode et description
1 add void (champ int, montant int )
Selon les règles de calendrier spécifiées (signé) quantité de temps au champ de calendrier donné.
2 computeFields protected void ()
UTC conversion ms valeur de seuil de temps
3 computeTime protected void ()
Couvrant Calendrier, Convertit des valeurs de champ de temps de UTC en millisecondes
4 boolean equals (Object obj)
Compare cette GregorianCalendar à l'objet spécifié.
5 int get (champ int)
Obtient la valeur temporelle du champ spécifié
6 int getActualMaximum (int champ)
Renvoie la date actuelle, la valeur maximale d'un champ donné
7 int getActualMinimum (int champ)
Renvoie la date actuelle, la valeur minimale d'un champ donné
8 int getGreatestMinimum (int champ)
GregorianCalendar Renvoie la valeur minimale la plus élevée pour le champ de calendrier donné.
9 Date de getGregorianChange ()
Obtenez grégorien date de modification.
10 int getLeastMaximum (int champ)
Retours cette instance GregorianCalendar d'un champ de calendrier compte tenu de la valeur maximale la plus basse
11 int getMaximum (int champ)
Renvoie GregorianCalendar instance étant donné le champ de calendrier au maximum.
12 Date de getTime ()
Obtenez le temps de calendrier en cours.
13 (longues) getTimeInMillis
Obtenez un calendrier avec une représentation de l'heure actuelle entier long
14 TimeZone getTimezone ()
Obtenez le fuseau horaire.
15 int getMinimum (int champ)
Retour à la valeur minimale d'un champ donné.
16 int hashCode ()
Réécrire hashCode.
17 booléen isLeapYear (année int)
Détermine si l'année donnée est une année bissextile.
18 rouleau vide (champ int, boolean up )
Sur le terrain de temps donné pour ajouter ou soustraire une seule unité de temps (haut / bas), sans changer de champs plus grands.
19 ensemble void (champ int, int valeur )
Avec le champ de valeur de temps donnée.
20 ensemble vide (année, int mois , int date)
Réglez l'année, la valeur du mois et le jour.
21 ensemble vide (année, int mois , int jour, int heure, int minute)
Réglez l'année, mois, jour, heure, valeur minute.
22 ensemble vide (année, int mois , int jour, int heure, int minute, int seconde)
Réglez l'année, heure, minute et seconde valeurs du mois, le jour.
23 setGregorianChange void (Date Date)
Définit la date de modification GregorianCalendar.
24 setTime void (Date Date)
Avec le temps actuel de la date donnée ensemble Calendrier.
25 setTimeInMillis vides (long) Millis
Avec un nombre donné de type long est l'heure de jeu millisecondes Calendrier.
26 settimezone void (valeur TimeZone)
Avec les paramètres de fuseau horaire à l'heure actuelle zone.
27 String toString ()
Retourne une chaîne qui représente le calendrier.

Exemples

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("当前年份不是闰年");
      }
   }
}

Les exemples ci-dessus les résultats compilés sont les suivants:

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