????Java 8????/??? Date/Time??API???????????????仯????Java????????ж????????????????????????????/???API????Java????API????????????????????
???????????????μ?Java????/???API??
?????????о?Java 8????/???API?????????????????????????????????????μ?API????Java?У????е????????????????????????????????У?
????Java??????/????????岢????£???java.util??java.sql????ж????????????????????????????????java.text???ж??塣
????java.util.Date????????????????java.sql.Date???????????????????java.sql???????????????????????????????????????????????????????
?????????????????????????????????????Щ???????????????????????????????????java.text.DateFormat???????????????£?SimpleDateFormat?????????????
???????е?????????????????????????????????????Java????????????????
??????????????????????????????????Java??????java.util.Calendar??java.util.TimeZone??????????????????????е?????
?????????е?????????????ж??????????????Щ????????????????????????????????????Java???????????????/?????????????Joda Time??Java????/????????а???????????滻??????????
????Java 8????/???API
????Java 8????/???API??JSR-310??????????????????????????????????????е??????μ?????/???API???Щ?????????
????????????μ?????/???API?У????е??????????????????????к????
?????????????μ?API??????????????????????unix timestamp?????????????????Date???????Time???????????DateTime??????????unix timestamp????????????????????
???????????????е????У?????????????????????????????????????????????????????????????now()???????????е????ж???????format()??parse()??????????????????????????????????????????????????????е???????????????????????????????????????????????????????Э??????????????
??????ò??????????μ?????/???API??????????з???????????????????磺??????????????????????????/?????????????????????
?????????????μ?????/???API???????ISO-8601??????????????????????????????IOS?????????
????Java????/???API??
????Java????/???API????????????????
????java.time?????????μ?Java????/???API????????????е??????????????????????????磺LocalDate?? LocalTime?? LocalDateTime?? Instant?? Period?? Duration??????????Щ??????????????????????????????£???Щ???????Ч??????Щ??????????
????java.time.chrono????????????ISO???????????????Щ??????API????????????AbstractChronology?????????????????????
????java.time.format???????????????????????????????????????????????????£???????????????????????java.time??????????????????????????????????
????java.time.temporal??????????????Щ????????????????????????????/?????????????????????????????????????μ?????????????????????Щ??????????????????“withXXX”??????
????java.time.zone?????????????????????????????????
????Java????/???API???
????????????????Java????/???API???????????????????????????????????????????Щ?????
????1. java.time.LocalDate??LocalDate???????????????????????(yyyy-MM-dd)?????????????????now()?????????????????????????????·???????????????????????LocalDate??????????now()???????????????????????????ZoneId??????????????????????????java.sql.Date??????????????????????????????????????????
package com.journaldev.java8.time;
import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;
/**
* LocalDate Examples
* @author pankaj
*
*/
public class LocalDateExample {
public static void main(String[] args) {
//Current Date
LocalDate today = LocalDate.now();
System.out.println("Current Date="+today);
//Creating LocalDate by providing input arguments
LocalDate firstDay_2014 = LocalDate.of(2014?? Month.JANUARY?? 1);
System.out.println("Specific Date="+firstDay_2014);
//Try creating date by providing invalid inputs
//LocalDate feb29_2014 = LocalDate.of(2014?? Month.FEBRUARY?? 29);
//Exception in thread "main" java.time.DateTimeException:
//Invalid date 'February 29' as '2014' is not a leap year
//Current date in "Asia/Kolkata"?? you can get it from ZoneId javadoc
LocalDate todayKolkata = LocalDate.now(ZoneId.of("Asia/Kolkata"));
System.out.println("Current Date in IST="+todayKolkata);
//java.time.zone.ZoneRulesException: Unknown time-zone ID: IST
//LocalDate todayIST = LocalDate.now(ZoneId.of("IST"));
//Getting date from the base date i.e 01/01/1970
LocalDate dateFromBase = LocalDate.ofEpochDay(365);
System.out.println("365th day from base date= "+dateFromBase);
LocalDate hundredDay2014 = LocalDate.ofYearDay(2014?? 100);
System.out.println("100th day of 2014="+hundredDay2014);
}
}