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 |
ré | 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 |
ré | 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 |
ré | 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 |
ré | 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 当前年份不是闰年