引出第三代日期类
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());
}
}