Traitement de la date
Classe de date
Méthodes courantes de la classe Date
Non. | La méthode | Tapez | La description |
---|---|---|---|
1 | Date publique () | La structure | Instancier des objets de classe Date |
2 | Date publique (date longue) | La structure | Transformez les nombres en objets de classe Date, les données de date et d'heure sont longues |
3 | public long getTime () | Ordinaire | Modifier la date et l'heure actuelles sur Long |
Exemple: obtenir la date et l'heure actuelles
package Project.Study.DateClass;
import java.util.Date;
public class Test1 {
public static void main(String[]args){
Date date=new Date(); //实例化Date对象
System.out.println(date); //输出对象信息
}
}
//结果:
//Wed Apr 01 20:09:49 CST 2020
Vous avez peut-être remarqué que la date produite par le programme ci-dessus n'est pas formatée et semble très tordue. Le format de la date doit utiliser la classe SimpleDateFormat, dont nous parlerons plus tard.
Exemple: conversion entre date et long
package Project.Study.DateClass;
import java.util.Date;
public class Test2 {
public static void main(String[]args){
long cur=System.currentTimeMillis(); //取得当前日期时间以long型返回
Date date=new Date(cur); //将long型转化为Date
System.out.println(date); //输出对象信息
System.out.println(date.getTime());
}
}
//结果:
//Wed Apr 01 20:16:22 CST 2020
//1585743382666
Formatage de la date: SimpleDateFormat
Non. | La méthode | Tapez | La description |
---|---|---|---|
1 | public SimpleDateFormat (modèle de chaîne) | La structure | Passer la date et l'heure pour instancier l'objet |
2 | format de chaîne final public (date date) | Ordinaire | Mettre en forme la date sous forme de données de chaîne |
3 | public Date parse (String source) lève ParseException | Ordinaire | Formater la chaîne en tant que données de date |
Exemple: formater la date et afficher (les données de type date deviennent des données de type chaîne)
package Project.Study.SimpleDateFormatClass;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test1 {
public static void main(String[]args){
Date date=new Date(); //实例化Date类对象
//实例化SimpleDateFormat类对象,同时定义好要转换的目标字符串格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String str=sdf.format(date); //将Date型变为String型
System.out.println(str);
}
}
//结果:
//2020-04-01 23:57:56.166
Remarque: aaaa-MM-jj HH: mm: ss.SSS correspond à (année-mois-jour heure: minute: seconde.ms), ce sont des horodatages couramment utilisés.
Exemple: convertir une chaîne en date
package Project.Study.SimpleDateFormatClass;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test2 {
public static void main(String[]args) throws ParseException {
String str="2020-04-01 23:57:56.166"; //日期字符串
//实例化SimpleDateFormat类对象,同时定义好了要转换的字符串格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date=sdf.parse(str); //将字符串变为日期型数据
System.out.println(date);
}
}
//结果:
//Wed Apr 01 23:57:56 CST 2020
La classe SimpleDateFormat a en fait l'avantage de pouvoir gérer automatiquement le mauvais nombre de dates et d'heures . Par exemple: si le nombre de mois défini est de 15, il augmentera automatiquement d'un an et deviendra 3 mois.
Exemple: observer la correction automatique de SimpleDateFormat
package Project.Study.SimpleDateFormatClass;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test3 {
public static void main(String[]args) throws ParseException {
String str="2020-15-65 23:57:56.166"; //定义一个错误的日期字符串
//实例化SimpleDateFormat类对象,同时定义好了要转换的字符串格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date=sdf.parse(str); //将字符串变为日期型数据
System.out.println(date);
}
}
//结果:
//Tue May 04 23:57:56 CST 2021
Comme vous pouvez le voir dans le programme ci-dessus, bien que nous ayons défini une chaîne de date incorrecte, la classe SimpleDateFormat effectue automatiquement le traitement de report.
Classe de calendrier
Constantes et méthodes définies dans la classe Calendar
Non. | La méthode | Tapez | La description |
---|---|---|---|
1 | public static final int YEAR | Constante | Obtenir l'année, le type int |
2 | public static final int MONTH | Constante | Obtenir le mois, type int |
3 | final statique public int DAY_OF_MONTH | Constante | Obtenir jour, type int |
4 | final statique public int HOUR_OF_DAY | Constante | Obtenir l'heure (horloge 24 heures), type int |
5 | public static final int MINUTE | Constante | Obtenir des points, type int |
6 | public static final int SECOND | Constante | Obtenir les secondes, type int |
7 | public static final int MILLISECOND | Constante | Obtenir des millisecondes, type int |
8 | Calendrier statique public getInstance () | Ordinaire | Instancier des objets selon le fuseau horaire par défaut |
9 | public boolean after (Object when) | Ordinaire | Déterminer si une date est postérieure à une date spécifiée |
dix | public boolean before (Object when) | Ordinaire | Déterminer si une date est antérieure à la date spécifiée |
11 | public int get (champ int) | Ordinaire | Renvoie la valeur du champ de calendrier donné |
Exemple: obtenir la date et l'heure actuelles
package Project.Study.CalendarClass;
import java.util.Calendar;
public class Test1 {
public static void main(String[]args){
Calendar cal=Calendar.getInstance(); //取得本类对象
StringBuffer buf=new StringBuffer(); //保存日期数据
buf.append(cal.get(Calendar.YEAR)).append("-"); //取得年数据
buf.append(cal.get(Calendar.MONTH)+1).append("-"); //取得月数据,从0开始
buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" "); //取得天数据
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":"); //取得小时数据
buf.append(cal.get(Calendar.MINUTE)).append(":"); //取得分钟数据
buf.append(cal.get(Calendar.SECOND)); //取得秒数据
System.out.println(buf);
}
}
//结果:
//2020-4-2 1:11:34
À partir du programme ci-dessus, nous pouvons constater que le contenu obtenu par la classe Calendar ne mène pas à 0, c'est-à-dire que si le mois en cours est avril, le retour n'est pas "04" mais "4".
Remarque: Étant donné que le mois de la classe Calendar commence à 0, chaque fois que le mois est calculé, une opération "+1" doit être effectuée.
La classe Calendar peut également effectuer des calculs de date simples
Exemple: obtenir la date après cinq jours
package Project.Study.CalendarClass;
import java.util.Calendar;
public class Test2 {
public static void main(String[]args){
Calendar cal=Calendar.getInstance();
StringBuffer buf=new StringBuffer();
buf.append(cal.get(Calendar.YEAR)).append("-");
buf.append(cal.get(Calendar.MONTH)+1).append("-");
buf.append(cal.get(Calendar.DAY_OF_MONTH)+5).append(" ");
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");
buf.append(cal.get(Calendar.MINUTE)).append(":");
buf.append(cal.get(Calendar.SECOND));
System.out.println(buf);
}
}
//结果:
//2020-4-7 1:21:56
Remarque: La classe Calendar n'a pas la fonction de report automatique de la classe SimpleDateFormat.
Exemple: démonstration d'erreur
package Project.Study.CalendarClass;
import java.util.Calendar;
public class Test2 {
public static void main(String[]args){
Calendar cal=Calendar.getInstance();
StringBuffer buf=new StringBuffer();
buf.append(cal.get(Calendar.YEAR)).append("-");
buf.append(cal.get(Calendar.MONTH)+1).append("-");
buf.append(cal.get(Calendar.DAY_OF_MONTH)+33).append(" ");
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");
buf.append(cal.get(Calendar.MINUTE)).append(":");
buf.append(cal.get(Calendar.SECOND));
System.out.println(buf);
}
}
//结果:
//2020-4-35 1:30:11(一个月不会有35天的...)