Récapitulatif des classes d'heure et de date Java

Résumé de l'heure et de la date Java

Date

java.util.DateEst utilisé pour représenter un objet date et heure, attention et java.sql.Datedistinction, ce dernier est utilisé dans la base de données.

API principale

Date date = new Date();
date;//Tue Nov 03 13:26:57 CST 2020

//获取当前所在地日期
date.toLocaleString();//2020-11-3 13:26:57

//获取毫秒值
date.getTime();//1604381300674

//获取毫秒值
system.currentTimeMillis();//1604381311714

Format de la date

java.text.SimpleDateFormatUtiliser une date formatée

personnage sens
Oui an
M mois
journée
E semaine
H Heure (au format 24 heures)
h Heure (horloge de 12 heures)
m Minute
s deuxième
aaaa-MM-jj HH: mm: ss 2020-01-01 17:15:30

Date à la chaîne

Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
String dateStr = format.format(date);
System.out.println(dateStr);//2020-06-18 11:41:03

Chaîne à ce jour

String dateStr = "2020年08月07日 14时30分15秒";
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = format.parse(dateStr);
System.out.println(date);//Fri Aug 07 14:30:15 CST 2020

Calendrier

java.util.CalendarC'est une classe pour manipuler l'année, le mois, le jour, les heures, les minutes et les secondes. Par rapport à Datecela , il a plus de fonctions pour le calcul de la date et de l'heure.

API principale

//获取Calendar对象
Calendar calendar = Calendar.getInstance();

//获取Date对象
Date date = calendar.getTime();

//获取时间戳
long timeInMillis = calendar.getTimeInMillis();
long timeInMillis = date.getTime();

//获取年月日时分秒
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);//月份范围0-11
int day = calendar.get(Calendar.DATE);
int hour_12 = calendar.get(Calendar.HOUR);//12进制
int hour_24 = calendar.get(Calendar.HOUR_OF_DAY);//24进制
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);

//获取月内第几周
int WEEK_OF_MONTH = calendar.get(Calendar.WEEK_OF_MONTH);
//获取年内第几天
int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
//获取月内第几天
int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
//获取星期几,范围(1-7),1为周日,7为周六
int DAY_OF_WEEK = calendar.get(Calendar.DAY_OF_WEEK);

//设置为上一月的最后一天
calendar.set(Calendar.DATE, 0);

Calcul de la date

//年份加1
calendar.add(Calendar.YEAR, 1);
//年份减2
calendar.add(Calendar.YEAR, -2);

//小时加1
calendar.add(Calendar.HOUR, 1);

LocalDate

java.time.LocalDateIl s'agit d'une nouvelle API pour Java8, qui fournit une nouvelle API de date et d'heure et modifie la conception déraisonnable de l'ancienne API.

API principale

LocalDate localDate = LocalDate.now();//获取当前日期
System.out.println(localDate);//2020-11-03

LocalTime localTime = LocalTime.now();//获取当前时间
System.out.println(localTime);//14:34:32.802

LocalDateTime localDateTime = LocalDateTime.now();//获取当前日期时间
System.out.println(localDateTime);//2020-11-03T14:34:32.802
LocalDate date = localDateTime.toLocalDate();//转当前日期
LocalTime time = localDateTime.toLocalTime();//转当前时间
System.out.println(date + " " + time);//2020-11-03 14:36:23.766


//创建指定日期时间
LocalDate date = LocalDate.of(2008, 8, 8);
LocalTime time = LocalTime.of(15, 16, 17);
LocalDateTime dateTime = LocalDateTime.of(2008, 8, 8, 15, 16, 17);

Chaîne à ce jour

Le séparateur de date et d'heure spécifié par l'ISO 8601 est T. Le format standard est le suivant:

  • Date: aaaa-MM-jj
  • Heure: HH: mm: ss
  • Temps en millisecondes: HH: mm: ss.SSS
  • Date et heure: aaaa-MM-jj'T'HH: mm: ss
  • Date et heure en millisecondes: aaaa-MM-jj'T'HH: mm: ss.SSS
//遵守ISO 8601格式,可以直接使用parse方法
LocalDateTime dateTime = LocalDateTime.parse("2008-08-08T15:16:17");
LocalDate date = LocalDate.parse("2008-08-08");
LocalTime time = LocalTime.parse("15:16:17");
System.out.println(dateTime);//2008-08-08T15:16:17
System.out.println(date);//2008-08-08
System.out.println(time);//15:16:17
//非遵守ISO 8601格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse("2008/08/08 15:16:17", formatter);
System.out.println(dateTime);//2008-08-08T15:16:17

Date à la chaîne

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.now();
String dateTimeStr = formatter.format(dateTime);
System.out.println(dateTimeStr);//2020/11/03 14:46:56

Calcul de la date et de l'heure

Addition et soustraction

LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);//2020-11-03T15:00:32.445

//先加5天,再减3小时
LocalDateTime dateTime1 = localDateTime.plusDays(5).minusHours(3);
System.out.println(dateTime1);//2020-11-08T12:00:32.445

//再减一个月
LocalDateTime dateTime2 = dateTime1.minusMonths(1);
System.out.println(dateTime2);//2020-10-08T12:00:32.445

Spécifier la modification

LocalDateTime d = LocalDateTime.now();
System.out.println(d);//2020-11-03T15:15:39.456

//日期修改为2008-8-8
LocalDateTime d2 = d.withYear(2008).withMonth(8).withDayOfMonth(8);
System.out.println(d2);//2008-08-08T15:15:39.456

Date du jugement

Au plus tard isBefore()et isAfter()déterminez la date et l'heure

LocalDateTime now = LocalDateTime.now();
LocalDateTime d2 = LocalDateTime.of(2008, 8, 8, 15, 16, 17);
System.out.println(now.isAfter(d2));//true

Outils de date et d'heure courants

package com.example.administrator.myapplication;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class DateTimeUtils {
    
    
    public static final String CONSTANT_DATE = "yyyy-MM-dd";

    private DateTimeUtils() {
    
    
    }

    /**
     * Date转String
     */
    public static String formatDate(Date date, String format) {
    
    
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        return simpleDateFormat.format(date);
    }


    /**
     * String转Date
     */
    public static Date parseDate(String dateStr, String format) {
    
    
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        try {
    
    
            Date date = simpleDateFormat.parse(dateStr);
            return date;
        } catch (ParseException e) {
    
    
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 月日时分秒 0-9前补充0,并转为字符串
     */
    public static String fillZero(int num) {
    
    
        return num < 10 ? "0" + num : "" + num;
    }

    /**
     * 去除前缀0,并转整数
     */
    public static int trimZero(String text) {
    
    
        if (text.startsWith("0")) {
    
    
            text = text.substring(1);
        }
        try {
    
    
            return Integer.parseInt(text);
        } catch (NumberFormatException e) {
    
    
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 获取每月天数
     */
    public static int getDaysInMonth(int year, int month) {
    
    
        String[] bigMonths = {
    
    "1", "3", "5", "7", "8", "10", "12"};
        String[] littleMonths = {
    
    "4", "6", "9", "11"};
        List<String> bigList = Arrays.asList(bigMonths);
        List<String> littleList = Arrays.asList(littleMonths);
        // 判断大小月及是否闰年,用来确定"日"的数据
        if (bigList.contains(String.valueOf(month))) {
    
    
            return 31;
        } else if (littleList.contains(String.valueOf(month))) {
    
    
            return 30;
        } else {
    
    
            if (year <= 0) {
    
    
                return 29;
            }
            // 是否闰年
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    
    
                return 29;
            } else {
    
    
                return 28;
            }
        }
    }

    /**
     * 获取昨天日期
     */
    public static String getYeasterDay() {
    
    
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);
        Date date = calendar.getTime();
        return new SimpleDateFormat(CONSTANT_DATE).format(date);
    }

    /**
     * 获取本周第一天
     */
    public static String getFirstOfThisWeek() {
    
    
        Calendar calendar = Calendar.getInstance();
        int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
        if (dayWeek == 1) {
    
    
            dayWeek += 7;
        }
        calendar.add(Calendar.DATE, 2 - dayWeek);
        Date date = calendar.getTime();
        return new SimpleDateFormat(CONSTANT_DATE).format(date);
    }

    /**
     * 获取本周最后一天
     */
    public static String getLastOfThisWeek() {
    
    
        Calendar calendar = Calendar.getInstance();
        int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
        if (dayWeek == 1) {
    
    
            dayWeek += 7;
        }
        calendar.add(Calendar.DATE, 2 - dayWeek);
        calendar.add(Calendar.DAY_OF_WEEK, 6);
        Date date = calendar.getTime();
        return new SimpleDateFormat(CONSTANT_DATE).format(date);
    }

    /**
     * 获取本月第一天
     */
    public static String getFirstOfMonth() {
    
    
        Calendar calendar = Calendar.getInstance();//获取当前日期
        calendar.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天
        Date date = calendar.getTime();
        return new SimpleDateFormat(CONSTANT_DATE).format(date);
    }

    /**
     * 获取本月最后一天
     */
    public static String getLastOfMonth() {
    
    
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        Date date = calendar.getTime();
        return new SimpleDateFormat(CONSTANT_DATE).format(date);
    }
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_14876133/article/details/106832924
conseillé
Classement