Java日期类常用API [jdk8之前]

Java日期类常用API [jdk8之前]

Java日期类常用API jdk8之前

package org.example;

import org.junit.jupiter.api.Test;

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

public class APITest {
    /**
     * 1.System.currentTimeMillis();
     * >获取当前时间对应的毫秒数,long类型
     * >当前时间距离1970年1月1号0分0秒的毫秒数
     * >常用来计算时间差
     */
    public void getCurrentMillis(){
        System.out.println(System.currentTimeMillis());
    }
    /**
     * Date类的使用
     * 1. java.util.Date
     *  >两个构造器
     *  >两个方法 1️⃣ toString() 2️⃣ getTime()
     * 2.java.sql.Date 是util的子类 对应着数据库中的date类型
     */
    @Test
    public void testDate(){
        Date date = new Date();//创建一个当前系统时间的date实例
        System.out.println(date.toString());

        long millisTime = date.getTime();//获取当前时间的毫秒数 1727708581989
        System.out.println(millisTime);

        Date date1 = new Date(1727708581989L);//创建一个基于指定时间戳的date的实例

        java.sql.Date date2 = new java.sql.Date(1727708581989L);//只有带参构造器
        System.out.println(date2.toString());
    }

    /**
     * 日期时间的格式化和解析
     * 格式化:将 日期-> (指定格式)字符串
     * 解析:字符串->日期
     */
    @Test
    public void testSimpleDateFormat() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定时间日期格式
//        格式化:将 日期-> (指定格式)字符串
        String strDate = sdf.format(new Date());
        System.out.println(strDate);
//        解析:字符串->日期 (当参数的格式与指定的格式不匹配时,抛异常)
        Date parDate = sdf.parse("2024-10-05 16:15:11");
    }

    /**
     * Calendar 日历类
     * 1. java.util.Calendar
     *  > 获取日历实例,Calendar 是一个抽象类,需要获取字类的实例,可直接通过静态方法getInstance()获取
     *  > 常用方法: field表示属性
     *      get(int field) / get(int field,xx) / set(int field,xx) / add(int field,xx)
     *      / getTime() / setTime(Date date)
     *  > 特性
     *      具有可变性
     *          get() / set()
     *      偏移性
     *          Date中的年份都是从1900年开始的,月份都从0开始
     *      格式化
     *          格式化只对Date有用,对calendar不行
     *      非线程安全,无法处理闰秒
     *
     */
    @Test
    public void testCalendar(){
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getClass());//检查当前对象的类 class java.util.GregorianCalendar
//        get(int field)
        // 获取年月日
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("year = " + year + ", month = " + month + ", day = " + day);
        // 获取星期几
        int week = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println("week = " + week);
        // 获取一年中的第几天
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println("dayOfYear = " + dayOfYear);
        // 获取一月中的第几周
        int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
        System.out.println("weekOfYear = " + weekOfYear);

//        set(field,xx); 赋值操作
        calendar.set(Calendar.DAY_OF_MONTH,13);
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//        add(int field,xx) 累加操作
        calendar.add(Calendar.DAY_OF_MONTH,10);//13+10
        calendar.add(Calendar.DAY_OF_MONTH,-10);//往前推
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//        getTime()
        Date time = calendar.getTime();
        System.out.println(time);
//         setTime(Date date)
        calendar.setTime(new Date()); //对calendar进行重置
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

录大大i

如果文章有用,还请鼓励一下作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值