java第三代日期LocalDateTime

引出第三代日期类

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());
    }
}
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章