package com.example.demo_java8_new_characteristic.test;
import java.time.*;
import java.time.format.DateTimeFormatter;
/**
* java8時間測試類
*/
public class Java8DateTest {
public static void main(String[] args) {
// Date and time with timezone in Java 8
ZoneId america = ZoneId.of("America/New_York");
LocalDateTime localtDateAndTime = LocalDateTime.now();
ZonedDateTime dateAndTimeInNewYork = ZonedDateTime.of(localtDateAndTime, america );
System.out.println("Current date and time in a particular timezone : " + dateAndTimeInNewYork);
/**
* LocalDate
*/
System.err.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>LocalDate<<<<<<<<<<<<<<<<<<<<<<<<");
//獲取當前日期,2019-12-27
LocalDate localDate = LocalDate.now();
System.err.println("當前日期>" + localDate);
//獲取當前年 2019
System.err.println(localDate + "當前年>" + localDate.getYear());
//獲取當前月 12
System.err.println(localDate + "當前月>" + localDate.getMonthValue());
//獲取當前年中的日 361
System.err.println(localDate + "當前年中的日>" + localDate.getDayOfYear());
//獲取當前月中的日 27
System.err.println(localDate + "當前月中的日>" + localDate.getDayOfMonth());
//獲取當前星期中的日 5
System.err.println(localDate + "當前星期中的日>" + localDate.getDayOfWeek().getValue());
//當前日期前一天,2019-12-26 minus:(表示運算)減去
System.err.println(localDate + "前一天>" + localDate.minusDays(1));
//當前日期後一天,2019-08-28 plus:(表示運算)加
System.err.println(localDate + "後一天>" + localDate.plusDays(1));
//當前日期前一月,2019-11-27 minus:(表示運算)減去
System.err.println(localDate + "前一月>" + localDate.minusMonths(1));
//當前日期後一月,2020-01-27 plus:(表示運算)加
System.err.println(localDate + "後一月>" + localDate.plusMonths(1));
//當前日期前一年,2018-12-27 minus:(表示運算)減去
System.err.println(localDate + "前一年>" + localDate.minusYears(1));
//當前日期後一年,2020-12-27 plus:(表示運算)加
System.err.println(localDate + "後一年>" + localDate.plusYears(1));
//當前日期前一週,2019-12-20 minus:(表示運算)減去
System.err.println(localDate + "前一週>" + localDate.minusWeeks(1));
//當前日期後一週,2020-01-03 plus:(表示運算)加
System.err.println(localDate + "後一週>" + localDate.plusWeeks(1));
/**
* LocalTime
*/
System.err.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>LocalTime<<<<<<<<<<<<<<<<<<<<<<<<");
//獲取當前時間 14:52:18.259
LocalTime localTime = LocalTime.now();
System.err.println("當前時間>" + localTime);
//獲取當前時 14
System.err.println(localTime + "當前時>" + localTime.getHour());
//獲取當前分 52
System.err.println(localTime + "當前分>" + localTime.getMinute());
//獲取當前秒 9
System.err.println(localTime + "當前秒>" + localTime.getSecond());
//當前時間前一時,13:54:27.370 minus:(表示運算)減去
System.err.println(localTime + "前一時>" + localTime.minusHours(1));
//當前時間後一時,15:54:46.763 minus:(表示運算)減去
System.err.println(localTime + "後一時>" + localTime.plusHours(1));
//當前時間前一分,14:54:11.102 minus:(表示運算)減去
System.err.println(localTime + "前一分>" + localTime.minusMinutes(1));
//當前時間後一分,14:56:33.259 minus:(表示運算)減去
System.err.println(localTime + "後一分>" + localTime.plusMinutes(1));
//當前時間前一秒,14:55:52.667 minus:(表示運算)減去
System.err.println(localTime + "前一秒>" + localTime.minusSeconds(1));
//當前時間後一秒,14:56:26.178 minus:(表示運算)減去
System.err.println(localTime + "後一秒>" + localTime.plusSeconds(1));
/**
* localDateTime
* LocalDateTime類是Java 8中日期時間功能裏,用於表示當地的日期與時間的類,它的值是無時區屬性的。
* 你可以將其視爲Java 8中LocalDate與LocalTime兩個類的結合。
* 你可以通過這些方法訪問其日期時間
* getYear()
getMonth()
getDayOfMonth()
getDayOfWeek()
getDayOfYear()
getHour()
getMinute()
getSecond()
getNano()
*/
System.out.println(">>>>>>>>>localDateTime<<<<<<<<");
LocalDateTime localDateTime = LocalDateTime.now();
System.err.println("當前完整日期>" + localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
/**
* 時間格式化
*/
System.out.println(">>>>>>>>>時間格式化<<<<<<<<");
DateTimeFormatter formatDataTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatDate = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter formatTime = DateTimeFormatter.ofPattern("HH:mm:ss");
String formatDataTimeStr = localDateTime.format(formatDataTime);
String formatDateStr = localDateTime.format(formatDate);
String formatTimeStr = localDateTime.format(formatTime);
System.err.println("完整日期格式化之後" + formatDataTimeStr);
System.err.println("日期格式化之後" + formatDateStr);
System.err.println("時間格式化之後" + formatTimeStr);
/**
* 時間比較大小
*/
System.out.println(">>>>>時間比較大小<<<<<");
LocalDateTime time1 = LocalDateTime.parse("2018-05-12 08:30:30", formatDataTime);
LocalDateTime time2 = LocalDateTime.parse("2018-04-20 16:30:30", formatDataTime);
System.err.println("time1=" + time1);
System.err.println("time2=" + time2);
System.err.println("time1==time2:" + time1.isEqual(time2));
System.err.println("time1>time2:" + time1.isAfter(time2));
System.err.println("time1<time2:" + time1.isBefore(time2));
}
}