<返回更多

java第三代日期LocalDateTime

2022-08-26    小李说java
加入收藏

引出第三代日期类

JDK 1.0中包含了一个 JAVA.util.Date 类,但是它的大多数方法已经在 DK 1.1引入)Calendar 类之后被弃用了,而 Calendar 也存在的问题是:

  • 可变性:像日期和时间这样的类应该是不可变的。
  • 偏移性: Date 中的年份是从1900开始的,而月份都从0开始,真正使用的时候还需要处理下。
  • 格式化:格式化只对 Date 有用, Calendar 则不行。
  • 线程不安全:它们也不是线程安全的;不能处理闰秒等(每隔2天,多出1s)。

jdk1.8中引入了第三代日期类,来解决上面的问题

三代日期类常用的方法

public class LocalDate01 {
    public static void main(String[] args) {
        //解读:
        //1.使用now()返回表示当前日期的对象
        //类似的 LocalDate.now()   LocalTime.now()
        //2.DateTimeFormatter 格式日期类
        //创建DateTimeFormatter 对象  具体的格式化的字符可以在jdk1.8 api文档中找到
        // 两种方式格式化:
        //方式1:调用LocalDateTime对象的format(DateTimeFormatter)
        //方式2:调用 DateTimeFormatter对象的format(LocalDateTime)
        DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime ldt=LocalDateTime.now();
        System.out.println("没有格式化之前的日期输出:"+ldt);
        System.out.println("使用方式1格式化日期输出:"+ldt.format(dft));
        String format = dft.format(ldt);
        System.out.println("使用方式2格式化日期输出:"+format);
        System.out.println("年=="+ldt.getYear());
        System.out.println("月=="+ldt.getMonth());
        System.out.println("月=="+ldt.getMonthValue());
        System.out.println("日=="+ldt.getDayOfMonth());
        System.out.println("时=="+ldt.getHour());
        System.out.println("分=="+ldt.getMinute());
        System.out.println("秒=="+ldt.getSecond());
    }
}
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>