java.util.Date日期類不是線程安全的。
在JDK8中引入了線程安全的時(shí)間類。
package com.wkcto.time;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.ChronoUnit;
/**
* java.time包中線程安全的日期類
* Author : 動(dòng)力節(jié)點(diǎn)老崔
*/
public class Test {
public static void main(String[] args) {
//1)LocalDate日期類
LocalDate date = LocalDate.now(); //當(dāng)前日期
System.out.println( date ); //2019-04-24
//2)當(dāng)前時(shí)間
LocalTime time = LocalTime.now();
System.out.println( time ); //19:50:35.344
//3)日期與時(shí)間
LocalDateTime now = LocalDateTime.now();
System.out.println(now); //2019-04-24T19:51:03.726
//4)返回當(dāng)前日期的各個(gè)屬性值
System.out.println( now.getYear());
System.out.println( now.getMonthValue());
System.out.println( now.getDayOfMonth());
System.out.println( now.getHour());
System.out.println( now.getMinute());
System.out.println( now.getSecond());
System.out.println( now.getNano()); //在毫秒數(shù)后面添加6個(gè)0
//5)自定義時(shí)間
LocalDateTime another = LocalDateTime.of(2100, 10, 12, 8, 58, 28);
System.out.println( another );
//6)使用plus增加時(shí)間, minus可以減少時(shí)間
another = another.plusYears(1);
System.out.println(another);
another = another.plusMonths(1);
System.out.println(another);
another = another.plusDays(1);
System.out.println(another);
another = another.plusHours(1);
System.out.println(another);
another = another.plusMinutes(1);
System.out.println(another);
another = another.plusSeconds(1);
System.out.println(another);
another = another.plus(10, ChronoUnit.YEARS);
System.out.println(another);
//7)設(shè)置時(shí)間
another = another.withYear(2088);
another = another.withMonth(7);
System.out.println( another);
//8)判斷星期幾
System.out.println( another.getDayOfWeek());
//9)把日期轉(zhuǎn)換為指定格式的字符串
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
//LocalDateTime類中有一個(gè)format( DateTimeFormatter) 實(shí)例方法可以把日期轉(zhuǎn)換為指定格式字符串
System.out.println( now.format(formatter) ); //2019年4月24日 下午08時(shí)03分28秒
formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
System.out.println( now.format(formatter)); //19-4-24 下午8:03
//自定義日期格式: y年, M月 d日 H小時(shí) m分鐘 s秒 S毫秒
formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss SSS");
System.out.println( now.format(formatter)); //2019年04月24日 20:05:16 338
//10)把字符串轉(zhuǎn)換為日期
String text = "2089年8月12日 8:28:58";
formatter = DateTimeFormatter.ofPattern("yyyy年M月dd日 H:mm:ss");
// LocalDateTime.parse(text, formatter)靜態(tài)方法,可以把text文件以formatter格式轉(zhuǎn)換為日期對(duì)象
another = LocalDateTime.parse(text, formatter);
System.out.println(another);
}
}