Utilisation de la classe d'outils de date Java

Utilisation de la classe d'outils de date Java

Notion d'horodatage

L'horodatage fait référence au nombre total de secondes depuis le 1er janvier 1970, 00:00:00 GMT (08:00:00, 1er janvier 1970, heure de Pékin). Il s'agit essentiellement d'un entier de type long, représentant un objet date. Les horodatages dans le système Java sont en millisecondes.

public class Timechuo {
    
    
    public static void main(String[] args) {
    
    
        long t=System.currentTimeMillis();
        System.out.println(t);    //输出时间戳
        System.out.printf("%tF %<tT%n",0L);//格式化时间戳-格林威治时间(中国)
        System.out.printf("%tF %<tT%n",t);//格式化时间戳
    }
}
运行结果:
1676080307174
1970-01-01 08:00:00
2023-02-11 09:51:47

java.util.Date

La méthode de construction sans paramètre de la classe Date obtient l'heure actuelle du système et l'ordre affiché est la semaine, le mois, le jour, l'heure, la minute, la seconde et l'année.
La classe Date identifie un horodatage spécifique au système qui peut être précis à la milliseconde près. L'ordre par défaut représenté par l'objet Data est semaine, mois, jour, heure, minute, seconde, année.
La classe Data possède les deux méthodes de construction suivantes :
Date() : cette forme indique que l'objet Date est alloué et initialisé pour représenter l'heure d'allocation (précise à la milliseconde près
). L'objet créé à l'aide de cette méthode de construction peut obtenir l'heure actuelle locale. Date(long date) : Cette forme indique le nombre de millisecondes spécifié par le paramètre date
à partir de 0:00:00 le 1er janvier 1970, heure GMT (Greenwich Mean Time) .

        Date d1=new Date();
        Date d2=new Date(System.currentTimeMillis());
        Date d3=new Date(1676081510116l);//指定时间戳
        System.out.println(d2);
        //格式化
        System.out.printf("%tF %<tT%n",d1);
        System.out.printf("%tF %<tT%n",d2);
        System.out.printf("%tF %<tT%n",d3);

        //常用方法
        long now=d1.getTime();
        System.out.println(now);//当前时间戳
        d1.setTime(now+(1000*60*60*24*10));//十天后的时间
        System.out.printf("%tF %<tT%n",now);//当前时间
        System.out.printf("%tF %<tT%n",d1);//十天后的时间
 运行结果:
Sat Feb 11 10:39:57 CST 2023
2023-02-11 10:39:57
2023-02-11 10:39:57
2023-02-11 10:11:50
1676083197622
2023-02-11 10:39:57
2023-02-21 10:39:57
        Date date1 = new Date(); // 调用无参数构造函数   注:要手动导包
        System.out.println(date1.toString()); // 输出:Sat Feb 11 09:37:30 CST 2023
        Date date2 = new Date(60000); // 调用含有一个long类型参数的构造函数
        System.out.println(date2); // 输出格林威治时间(中国)+60000毫秒后的时间:Thu Jan 01 08:01:00 CST 1970
   运行结果:
   Sat Feb 11 09:37:30 CST 2023
   Thu Jan 01 08:01:00 CST 1970

La méthode de construction sans paramètre de la classe Date obtient l'heure actuelle du système et l'ordre affiché est la semaine, le mois, le jour, l'heure, la minute, la seconde et l'
année.
La méthode de construction de la classe Date avec un paramètre de type long obtient l'heure spécifiée en millisecondes à partir de GMT, 60000 millisecondes est une minute ,
et la différence entre GMT (Greenwich Mean Time) et CST (Central Standard Time) est de 8 heures, c'est-à-dire que 00:00:00 GMT le 1er janvier 1970 et 08:00:00 CST le 1er janvier 1970 représentent la même heure
.
Ainsi, une minute à partir du 1er janvier 1970 00:00:00 CST est le 1er janvier 1970 00:01:00 CST, qui est représenté par Thu Jan 01
08:01:00 CST 1970 à l'aide d'un objet Date.

méthode décrire
booleanafter(Date quand) Déterminer si cette date est postérieure à la date spécifiée
booléen avant(Datequand) Déterminer si cette date est antérieure à la date spécifiée
int compareTo(DateanotherDate) compare l'ordre de deux dates
booléen égal(Object obj) Compare deux dates pour l'égalité
long getTime () Renvoie le nombre de millisecondes que cet objet Date représente depuis le 1er janvier 1970 00:00:00 GMT
Chaîne à Chaîne() Convertissez cet objet Date en une chaîne de la forme : dow lun dd hh:mm:ss zzzyyyy. où dow est le jour de la semaine (dim, lundi, mardi, mercredi, jeudi, vendredi et samedi)

java.util.Calendar

La classe Calendar est une classe abstraite qui
fournit des méthodes pour convertir entre des instants spécifiques et des champs de calendrier tels que YEAR, MONTH, DAY_OF_MONTH, HOUR, et pour manipuler des champs de calendrier tels que l'obtention de la date de la semaine prochaine.
Le mot-clé new ne peut pas être utilisé pour créer un objet Calendar, car la classe Calendar est une classe abstraite, mais il fournit une
méthode getInstance() pour obtenir un objet de la classe Calendar. La méthode getInstance() renvoie un objet Calendar dont les champs de calendrier
ont été initialisés avec la date et l'heure actuelles.

Calendar c = Calendar.getInstance();

Après avoir créé un objet Calendar, vous pouvez traiter la date et l'heure via certaines méthodes de l'objet Calendar.
Les méthodes courantes de la classe Calendar sont présentées dans le tableau.
insérez la description de l'image ici
L'objet Calendar peut appeler la méthode set() pour activer le calendrier à tout moment. Lorsque le paramètre year est négatif, cela signifie BC.
Appelez la méthode get() de l'objet Calendar pour obtenir des informations temporelles telles que l'année, le mois, le jour, etc., et la valeur effective du champ de paramètre est spécifiée par la constante statique de Calendar
.
De nombreuses constantes sont définies dans la classe Calendar, qui représentent différentes significations.
Calendar.YEAR : Année.
Calendar.MONTH : Le mois.
Calendrier.DATE : Date.
Calendar.DAY_OF_MONTH : Date, qui a exactement la même signification que les champs ci-dessus.
Calendar.HOUR : L'heure au format 12 heures.
Calendar.HOUR_OF_DAY : l'heure au format 24 heures.
Calendrier MINUTE : Minutes.
Calendar.SECOND : secondes.
Calendar.DAY_OF_WEEK : le jour de la semaine.
Par exemple, pour obtenir le mois en cours, utilisez le code suivant :

 int month = Calendar.getInstance().get(Calendar.MONTH);

Si la valeur de la variable entière month est 0, cela signifie que le calendrier actuel est en janvier ; si la valeur est 11, cela signifie que le calendrier actuel est en décembre
.

    public static void main(String[] args) {
    
    
        /*Calendar c=Calendar.getInstance();
        System.out.println(c);*/
       // System.out.printf("%tF %<tT%n",System.currentTimeMillis());
        int month = Calendar.getInstance().get(Calendar.MONTH);//当前时间
        System.out.println(month);//输出月
    }
运行结果:
2023-02-11 11:13:53
1
Calendar calendar=Calendar.getInstance();// 如果不设置时间,则默认为当前时间
        calendar.setTime(new Date());// 如果不设置时间,则默认为当前时间
        System.out.println("现在时刻:"+calendar.getTime());// 获取当前时间
        int year=calendar.get(Calendar.YEAR);// 获取当前年份
        System.out.println("现在是"+year+"年");
        int month=calendar.get(Calendar.MONTH)+1;// 获取当前月份(月份从 0 开始,所以加 1)
        System.out.println(month+"月");
        int day=calendar.get(Calendar.DATE);// 获取日
        System.out.println(day+"日");
        int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 获取今天星期几(以星期日第一天)
        System.out.println("星期" + week);
        int hour = calendar.get(Calendar.HOUR_OF_DAY); // 获取当前小时数(24 小时制)
        System.out.println(hour + "时");
        int minute = calendar.get(Calendar.MINUTE); // 获取当前分钟
        System.out.println(minute + "分");
        int second = calendar.get(Calendar.SECOND); // 获取当前秒数
        System.out.println(second + "秒");
        int millisecond = calendar.get(Calendar.MILLISECOND); // 获取毫秒数
        System.out.println(millisecond + "毫秒");
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // 获取今天是本月第几天
        System.out.println("今天是本月的第 " + dayOfMonth + " 天");
        int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);// 获取今天是本月第几周
        System.out.println("今天是本月第 " + dayOfWeekInMonth + " 周");
        int many = calendar.get(Calendar.DAY_OF_YEAR); // 获取今天是今年第几天
        System.out.println("今天是今年第 " + many + " 天");
        Calendar c1 = Calendar.getInstance();
        c1.set(2012, 8, 8); // 设置年月日,时分秒将默认采用当前值
        System.out.println("设置日期为 2012-8-8 后的时间:" + c1.getTime()); // 输出时间上面的示例代码演示了 Calendar 类中的方法与常量的结合使用,从而完成处理日期的操作。


        var c = Calendar.getInstance();
       // c.set();
       // c.get();
        System.out.println(c.get(Calendar.HOUR_OF_DAY));//获取小时
       //System.out.println(new Date().getHours());
        // c.add();
       //设置-7天,获取7天前的日期
        c.add(Calendar.DATE, -7);
       //日历类转换为Date类
        Date d = c.getTime();
       //日历类获取时间戳
        long ts = c.getTimeInMillis();
        System.out.printf("%tF %<tT%n", c);
 运行结果:
现在时刻:Sat Feb 11 11:40:49 CST 2023
现在是2023211日
星期6
114049220毫秒
今天是本月的第 11 天
今天是本月第 2 周
今天是今年第 42 天
设置日期为 2012-8-8 后的时间:Sat Sep 08 11:46:02 CST 2012
11
2023-02-04 11:46:02

API de date java8

DateLocale

dk1.8 新的日期API java.time.LocalDate类 java.util.Date Calendar
此类只有年月日
 public static void main(String[] args) {
    
    
        //实例化
        LocalDate d1=LocalDate.now();
        var d2=LocalDate.of(1985,10,17);
        //常用操作
        System.out.println(d1);
        //今日5天后日期
        System.out.println(d1.plusDays(5));
        //今日2天前日期
        System.out.println(d1.minusDays(3));
        //今日25个月后的日期
        System.out.println(d1.plus(25, ChronoUnit.MONTHS));

        //今日日期的月份  二月
        var msn=d1.getMonth().getDisplayName(TextStyle.FULL, Locale.CHINESE);
        System.out.println(msn);

        //今日 星期六
        var wsn = d1.getDayOfWeek().getDisplayName(TextStyle.FULL,Locale.CHINESE);
        System.out.println(wsn);
        //今日 周六
        var sn = d1.getDayOfWeek().getDisplayName(TextStyle.SHORT,Locale.CHINESE);
        System.out.println(sn);
        //计算两个日期之间的天数
        long days = ChronoUnit.DAYS.between(d2,d1);
        System.out.printf("%s 到 %s 之间有 %d 天",d2,d1,days);
        System.out.println();
        //格化输出
        System.out.println(d1);
        System.out.println(d2);
        System.out.printf("%tF%n",d1);
        System.out.printf("%tF%n",d2);
        System.out.printf("%tY年%<tm月%<td日 %<tA%n",d1);
        System.out.printf("%tY年%<tm月%<td日 %<tA%n",d2);
        System.out.println(d1.isLeapYear());
        //专业的格式工具类java.time.DateTimeFormatter
        //var fmt = DateTimeFormatter.ofPattern("yyyy年MM月dd日 E ML");
        var fmt = DateTimeFormatter.ofPattern("yyyy年MM月dd日 E M L",Locale.CHINA);
        System.out.println(fmt.format(d1));
        System.out.println(fmt.format(d2));
    }
运行结果:
2023-02-11
2023-02-16
2023-02-08
2025-03-11
二月
星期六
周六
1985-10-172023-02-11 之间有 136312023-02-11
1985-10-17
2023-02-11
1985-10-17
20230211日 星期六
19851017日 星期四
false
20230211日 周六 2 2
19851017日 周四 10 10

Heure locale

java.time.LocalTime
public static void main(String[] args) {
    
    
        //LocalTime 实例化
        var t1= LocalTime.now();
        var t2=LocalTime.of(14,30,20);
        var t3=LocalTime.parse("15:25:35", DateTimeFormatter.ofPattern("HH:mm:ss"));

        //简单输出
        System.out.println(t1);
        System.out.printf("%tT%n",t1);
        System.out.println(t2);
        System.out.println(t3);

        //格式化输出
        DateTimeFormatter df=DateTimeFormatter.ofPattern("HH时mm分ss秒");
        System.out.println(df.format(t1));
        System.out.println(df.format(t2));
        System.out.println(df.format(t3));
        System.out.println(t1.plusSeconds(1000));
        var sns=t1.plusSeconds(1000).format(DateTimeFormatter.ofPattern("HH:mm:ss"));
        System.out.println(sns);
    }
运行结果:
14:48:39.341209100
14:48:39
14:30:20
15:25:35
14483914302015253515:05:19.341209100
15:05:19

DateHeureLocale

java.time.LocalDateTime

Cette classe contient des informations sur l'année, le mois, le jour, l'heure, la minute et la seconde, ce qui équivaut à LocalDateTime = LocalDate + LocalTime. Elle est équivalente à
la précédente java.util.Date, ainsi qu'à la classe java.util.Calendar

    public static void main(String[] args) {
    
    
        var d1 = LocalDateTime.now();
        System.out.println(d1);
        System.out.printf("%tF %<tT %n",d1);
        System.out.printf("%tF%n",d1);
        System.out.printf("%tT%n",d1);
        System.out.printf("%tY年%<tm月%<td日 %<tH:%<tM:%<tS %<tA %<tp %s %n",d1,d1.getMonth().getDisplayName(TextStyle.FULL, Locale.CHINA));
        //将字符串转换为LocalDateTime
        var d2 = LocalDateTime.of(2022,10,17,14,49,50);
        System.out.println(d2);
        System.out.println(d2.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        System.out.println("--------------------");
        String str = "2022-03-15 20:30:40";
        var d3 = LocalDateTime.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(d3);
    }
运行结果:
2023-02-11T15:37:05.435471500
2023-02-11 15:37:05 
2023-02-11
15:37:05
2023021115:37:05 星期六 下午 二月 
2022-10-17T14:49:50
2022-10-17 14:49:50
--------------------
2022-03-15T20:30:40

Je suppose que tu aimes

Origine blog.csdn.net/qq_56015865/article/details/128963746
conseillé
Classement