jdk 8.0 之前日期时间的api测试

本文详细介绍了Java 8之前的日期时间API,包括System.currentTimeMillis()、Date与java.sql.Date、SimpleDateFormat的格式化与解析,以及Calendar类的使用。通过实际操作演示了日期字符串转换和日历操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


jdk 8.0 之前日期时间的api测试


package com.atguigu.java;

import org.junit.Test;

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

/**
 * jdk 8.0 之前日期时间的api测试
 * 1. System类中的 curtentTimeMillis()
 * 2. java.util.Date  和 子类 java.sql.Date
 * 3. SimpleDateFormat
 * 4. Calendar
 *
 * @author liangqichen
 * @create 2021-09-05 10:06
 */
public class DateTimeTest {
    /*
       SimpleDateFormat 的使用 : SimpleDateFormat对日期Date类的格式化和解析

       1. 两个操作:
       1.1格式化  日期 ---> 字符串  date ---> String
       1.2解析   格式化的逆过程  字符串 ---> 日期

       2.SimpleDateFormat 的实例化
     */
    @Test
    public void testSimpleDateFormat() throws ParseException {
        // 实例化SimpleDateFormat : 使用默认的构造器
        SimpleDateFormat sdf = new SimpleDateFormat();

        // 格式化日期: 日期 ---> 字符串
        Date date = new Date();
        System.out.println(date); // Sun Sep 05 10:14:59 CST 2021

        String format = sdf.format(date);
        System.out.println(format);  //2021/9/5 下午12:08

        // 解析 : 字符串 ---> 日期
        String str = "2021/9/5 下午12:08";
        Date date1 = sdf.parse(str);
        System.out.println(date1);  // Sun Sep 05 12:08:00 CST 2021

        // ************************  按照指定的方式进行格式化和解析 : 调用带参数的构造器  *******************************
//        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy.MMMM.dd GGG hh:mm aaa");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  // 开发中较多使用指定格式 较灵活

        // 格式化
        String format1 = sdf1.format(date);
        System.out.println(format1);  // 2021.九月.05 公元 12:17 下午   2021-09-05 12:19:25

        // 解析  要求字符串必须符合 SimpleDateFormat 识别的格式  通过构造器的形参来体现
        // 否则就会抛出异常
        Date date2 = sdf1.parse("2020-09-05 12:19:25");
        System.out.println(date2);  // Sat Sep 05 00:19:25 CST 2020

    }

    /*
    练习1 : 字符串 "2020-09-08" 转换为java.sql.Date

    练习2 : 三天打鱼,两天晒网  1990-1-1执行  ****-**-**在打鱼还是晒网

     */
    @Test
    public void testExer() throws ParseException {
        String birth = "2020-09-08";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = simpleDateFormat.parse(birth);
        System.out.println("***" + date);  //***Tue Sep 08 00:00:00 CST 2020

        java.sql.Date birthDate = new java.sql.Date(date.getTime());
        System.out.println(birthDate);  // 2020-09-08
    }

    /*
    Calendar 日历类的使用 抽象类


     */
    @Test
    public void testCalendar() {
        // 1. 实例化
        // 方式一 : 创建子类的对象 GregorianCalendar
        // 方式二 : 调用 getInstance方法
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getClass());   // class java.util.GregorianCalendar

        // 2. 常用方法
        // get()
        int days = calendar.get(Calendar.DAY_OF_MONTH); // 获取当前月份的第几天
        System.out.println(days); // 5
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); // 248  获取当年的第几天

        // set()  可变的
        calendar.set(Calendar.DAY_OF_MONTH, 22);
        days = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);  // 22

        // add()
        calendar.add(Calendar.DAY_OF_MONTH, -3);
        days = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days); // 19

        // getTime() 日历类 --- >  Date
        Date date = calendar.getTime();
        System.out.println(date);  // Sun Sep 19 15:32:54 CST 2021

        // setTime()  Date ---> 日历类
        Date date1 = new Date();
        calendar.setTime(date1);
        days = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);  // 5
    }
}

























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值