Java基础:常用类(Date)

Date类

(1)toString() 显示当前的年月日分秒
(2)getTime() 显示当前对象对应的时间戳(毫秒)

/**
 * Created by KingsLanding on 2022/6/20 13:55
 */
public class Data {
    @Test
    public void test2(){
        //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
        //称之为时间戳
        System.out.println(System.currentTimeMillis());
    }

    /**
     * 1.两个构造器的使用
     *      Date()构造器:创建一个当前时间的date对象
     *      指定毫秒数的Date对象
     * 2.两个方法的使用
     *      (1)toString() 显示当前的年月日分秒
     *      (2)getTime()  显示当前对象对应的时间戳(毫秒)
     *
     * 3.java.sql.Date对应数据库中的日期类型的变量
     *      如何将java.util.Date对象转换为java.sql.Date对象
     */
    @Test
    public void test1(){
        //一、Date()构造器:创建一个当前时间的date对象
        Date date = new Date();
        System.out.println(date.toString());
        System.out.println(date.getTime());

        //二、指定毫秒数的Date对象
        Date date1 = new Date(1655704905737L);
        System.out.println(date1.toString());

        //java.sql.Date()的实例化方式
        java.sql.Date date2 = new java.sql.Date(1655704905737L);
        System.out.println(date2.toString());
        //java.util.Date()-->java.sql.Date()
        java.sql.Date date3 = new java.sql.Date(date.getTime());
        System.out.println(date3);

    }
}

jdk8之前的日期时间的API测试

  • 1.System中的currentTimeMillis()方法
  • 2.java.util.Date和java.sql.Date
  • 3.SimpleDateFormat
  • 4.Calendar 日历类
public class SimpleDateFormatTest {

    @Test
    public void test() throws Exception{
        //实例化SimpleDateFormat
        SimpleDateFormat sdf = new SimpleDateFormat();
        
        //格式化:日期--->字符串
        Date date=new Date();
        System.out.println(date);
        String format = sdf.format(date);
        System.out.println(format);

        //解析:格式化的逆过程 字符串-->日期
        String s1="22-6-20 下午4:28";
        Date date2 = sdf.parse(s1);
        System.out.println(date2);

        //按照指定的方式格式化和解析,调用带参的构造器
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println(sdf1.format(date));
    }

    /**
     * 练习:字符串"2022-6-20"转换为java.sql.Date
     */
    @Test
    public void test3() throws Exception{
        String s1="2022-6-20";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(s1);
        System.out.println(date);

        java.sql.Date date1 = new java.sql.Date(date.getTime());
        System.out.println(date1);
    }
    /**
     * Calendar日历类(抽象类)的使用
     */
    @Test
     public void test4(){
         //创建方式
         //一、创建其子类(GregorianCalender)的对象
         //二、调用其静态方法getInstance();
         Calendar calendar=Calendar.getInstance();

         //常用方法
         //get()
         int days = calendar.get(Calendar.DAY_OF_MONTH);//当月第几天
         System.out.println(days);
         System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//当月第几周

        //set()
        calendar.set(Calendar.DAY_OF_MONTH,10);//设置当月第10天
        days=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);

        //add()
        calendar.add(Calendar.DAY_OF_MONTH,2);//当月第几天+2
        days=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);

        //getTime() 日历类-->Date
        Date date = calendar.getTime();
        System.out.println(date);//Sun Jun 12 18:28:50 CST 2022

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

### jdk8之后的日期API

  • LocalDate;
  • LocalTime;
  • LocalDateTime使用频率更高
public class DateTime {
    /**
     * LocalDate;LocalTime;LocalDateTime使用频率更高
     * 类似于Calendar
     */
    @Test
    public void test1(){
        //获取当前时间
        LocalDate now = LocalDate.now();
        System.out.println(now);//2022-06-21
        System.out.println(LocalTime.now());//14:41:43.525
        System.out.println(LocalDateTime.now());//2022-06-21T14:41:43.525

        //of()设置具体时间
        System.out.println(LocalDateTime.of(2022, 6, 21, 4, 12));//年,月,日,时,分,秒

        //getXxx():获取相关属性
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime.getDayOfMonth());//获取当月历经天数
        System.out.println(localDateTime.getDayOfYear());//获取当年历经天数

        //withXxx():设置相关属性
        //不可变性
        LocalDateTime localDateTime1 = LocalDateTime.now();
        System.out.println(localDateTime1.withDayOfMonth(23));//设置当月号数
        System.out.println(localDateTime1);
    }

    /**
     * Instant类
     */
    @Test
    public void test2(){
        //now()获取本初子午线上对应的标准时间
        Instant instant = Instant.now();
        System.out.println(instant);

        //atOffset()添加时间偏移量(北京时间)
        Instant instant1 = Instant.now();
        OffsetDateTime offsetDateTime = instant1.atOffset(ZoneOffset.ofHours(8));
        System.out.println(offsetDateTime);

        //toEpochMilli()获取自1970-1-1-0-0-0(UTC)开始的毫秒
        long milli = instant1.toEpochMilli();
        System.out.println(milli);

        //ofEpochMilli()通过给定的毫秒数,获取Instant实例;即毫秒数对应的本初子午线时间
        Instant ofEpochMilli = Instant.ofEpochMilli(1655795103358L);
        System.out.println(ofEpochMilli);
    }

    /**
     * DateTimeFormatter:格式化或解析日期,时间
     * 类似于SimpleDateFormat
     */
    @Test
    public void test3(){
        //方式一;使用预定义的
        DateTimeFormatter isoDateTime = DateTimeFormatter.ISO_DATE_TIME;

        //格式化:日期-->字符串
        LocalDateTime localDateTime = LocalDateTime.now();
        String format = isoDateTime.format(localDateTime);
        System.out.println(format);

        //解析:字符串-->日期
        TemporalAccessor parse = isoDateTime.parse("2022-06-21T15:17:21.447");
        System.out.println(parse);

        //重点:方式二、自定义格式
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        //格式化
        LocalDateTime now = LocalDateTime.now();
        String format1 = dateTimeFormatter.format(now);
        System.out.println(format1);
        //解析
        TemporalAccessor parse1 = dateTimeFormatter.parse("2022-06-21 03:34:02");
        System.out.println(parse1);
    }
}
重点 自定义格式DateTimeFormatter
 //重点:方式二、自定义格式
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        //格式化
        LocalDateTime now = LocalDateTime.now();
        String format1 = dateTimeFormatter.format(now);
        System.out.println(format1);
        //解析
        TemporalAccessor parse1 = dateTimeFormatter.parse("2022-06-21 03:34:02");
        System.out.println(parse1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

King'sLanding

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值