【总结】Java 日期时间

Java Date 类

应用场景

  • 用于构造时间
  • 时间之间的比较

常用方法

方法简介
new Date()无参构造
new Date(long millis)有参构造,参数为1970-01-01起的毫秒数
boolean after(Date date)调用此方法的 Date 对象若在指定日期之后,则返回 true;否则返回 false
boolean before(Date date)调用此方法的 Date 对象若在指定日期之前,则返回 true;否则返回 false
int compareTo(Date date)比较调用此方法的对象和指定日期,两者相等时返回 0;调用对象在指定日期之前则返回负数;否则返回正数
long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 至此日期的毫秒数

DateDemo

package Java日期时间;

import java.util.Date;

public class DateDemo {

    public static void main(String[] args) {
        // ==================== 1. 构造方法 ====================
        // 无参构造:new Date()
        // 有参构造:new Date(long millis),参数为1970-01-01起的毫秒数
        Date date1 = new Date();
        Date date2 = new Date(123456789);
        Date date3 = new Date(987654321);
        System.out.println(date1); // Tue Aug 30 20:10:03 CST 2022
        System.out.println(date2); // Fri Jan 02 18:17:36 CST 1970
        System.out.println(date3); // Mon Jan 12 18:20:54 CST 1970

        // ==================== 2. 常用方法 ====================
        // (1) boolean after(Date date):调用此方法的 Date 对象若在指定日期之后,则返回 true;否则返回 false;
        System.out.println(date1.after(date2)); // true
        System.out.println(date2.after(date3)); // false
        // (2) boolean before(Date date):调用此方法的 Date 对象若在指定日期之前,则返回 true;否则返回 false;
        System.out.println(date1.before(date2)); // false
        System.out.println(date2.before(date3)); // true
        // (3) int compareTo(Date date):比较调用此方法的对象和指定日期,两者相等时返回 0;调用对象在指定日期之前则返回负数;否则返回正数;
        System.out.println(date1.compareTo(date2)); // 1
        System.out.println(date2.compareTo(date3)); // -1
        System.out.println(date3.compareTo(new Date(987654321))); // 0
        // (4) long getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 至此日期的毫秒数;
        System.out.println(date1.getTime()); // 1661864458281
        System.out.println(date2.getTime()); // 123456789
        System.out.println(date3.getTime()); // 987654321
    }

}

Java SimpleDateFormat 类

应用场景

  • 格式化时间类
  • 实现 String 与 Date 类的互相转换

常用方法

方法简介
new SimpleDateFormat(String str)构造方法
Date parse(String str)String 转 Date
String format(Date date)Date 转 String

SimpleDateDemo

package Java日期时间;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo {

    public static void main(String[] args) throws ParseException {
        // ==================== 1. 构造方法 ====================
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
        // ==================== 2. 常用方法 ====================
        // (1) Date parse(String str):String 转 Date
        System.out.println(simpleDateFormat1.parse("2022-08-30")); // Tue Aug 30 00:00:00 CST 2022
        System.out.println(simpleDateFormat2.parse("2022-08-30 18:30:52")); // Tue Aug 30 18:30:52 CST 2022
        System.out.println(simpleDateFormat3.parse("2022-08-30 10:40:25 下午")); // Tue Aug 30 22:40:25 CST 2022
        // (2) String format(Date date):Date 转 String
        System.out.println(simpleDateFormat1.format(new Date())); // 2022-08-30
        System.out.println(simpleDateFormat2.format(new Date())); // 2022-08-30 21:25:37
        System.out.println(simpleDateFormat3.format(new Date())); // 2022-08-30 09:25:37 下午
    }

}

Java Calendar 类

应用场景

  • 获取对应的年月日秒分时星期等
  • 可以实现日期的加减

常用方法

方法简介
Calendar.getInstance()获得日历对象
setTime(Date date)设置时间(默认就是当前时间)
set(int field, int value)根据特定字段设置时间
get(int field)获取特定字段时间
add(int field, int amount)日期的加减

CalendarDemo

package Java日期时间;

import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {

    public static void main(String[] args) throws InterruptedException {
        // ==================== 1. 获得对象 ====================
        Calendar calendar = Calendar.getInstance();
        // ==================== 2. 常用方法 ====================
        // (1) setTime(Date date):设置时间(默认就是当前时间)
        System.out.println(calendar.getTime()); // Tue Aug 30 21:34:50 CST 2022
        Thread.sleep(3000);
        calendar.setTime(new Date());
        System.out.println(calendar.getTime()); // Tue Aug 30 21:34:53 CST 2022
        // (2) set(int field, int value):根据特定字段设置时间
        calendar.set(Calendar.YEAR, 2022);
        calendar.set(Calendar.MONTH, 11); // 注意:月份从 0 开始
        calendar.set(Calendar.DATE, 31);
        calendar.set(Calendar.HOUR_OF_DAY, 23); // Calendar.Hour 为 12 小时制
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        System.out.println(calendar.getTime()); // Sat Dec 31 23:59:59 CST 2022
        // (3) get(int field):获取特定字段时间
        calendar.setTime(new Date());
        System.out.println(calendar.get(Calendar.YEAR)); // 2022
        System.out.println(calendar.get(Calendar.MONTH) + 1); // 8
        System.out.println(calendar.get(Calendar.DATE)); // 30
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 21
        System.out.println(calendar.get(Calendar.MINUTE)); // 48
        System.out.println(calendar.get(Calendar.SECOND)); // 59
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); // 3
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 30
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); // 5
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); // 242
        // (4) add(int field, int amount):日期的加减
        calendar.add(Calendar.YEAR, 1);
        calendar.add(Calendar.MONTH, -1);
        calendar.add(Calendar.DATE, 1);
        System.out.println(calendar.getTime()); // Mon Jul 31 21:52:51 CST 2023
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值