http://www.codeceo.com/article/java-8-20-datetime.html
LocalDate date = LocalDate.of(2016, Month.JANUARY, 24); int year = date.getYear(); // 2016 Month month = date.getMonth(); // 1月 int dom = date.getDayOfMonth(); // 24 DayOfWeek dow = date.getDayOfWeek(); // 星期天,SUNDAY int len = date.lengthOfMonth(); // 31 (1月份的天数) boolean leap = date.isLeapYear(); // true (是闰年) date = date.withYear(2015); // 2015-01-24 date = date.plusMonths(2); // 2015-03-24 date = date.minusDays(1); // 2015-03-23
LocalTime time = LocalTime.of(20, 30); int hour = time.getHour(); // 20 int minute = time.getMinute(); // 30 time = time.withSecond(6); // 20:30:06 time = time.plusMinutes(3); // 20:33:06
LocalDateTime dt1 = LocalDateTime.of(2016, Month.JANUARY, 10, 20, 30); LocalDateTime dt2 = LocalDateTime.of(date, time); LocalDateTime dt3 = date.atTime(20, 30); LocalDateTime dt4 = date.atTime(time);LocalDateTime的其他方法跟LocalDate和LocalTime相似。这种相似的方法模式非常有利于API的学习。下面总结了用到的方法前缀:
of: 静态工厂方法,从组成部分中创建实例 from: 静态工厂方法,尝试从相似对象中提取实例。from()方法没有of()方法类型安全 now: 静态工厂方法,用当前时间创建实例 parse: 静态工厂方法,总字符串解析得到对象实例 get: 获取时间日期对象的部分状态 is: 检查关于时间日期对象的描述是否正确 with: 返回一个部分状态改变了的时间日期对象拷贝 plus: 返回一个时间增加了的、时间日期对象拷贝 minus: 返回一个时间减少了的、时间日期对象拷贝 to: 把当前时间日期对象转换成另外一个,可能会损失部分状态 at: 用当前时间日期对象组合另外一个,创建一个更大或更复杂的时间日期对象 format: 提供格式化时间日期对象的能力
DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyyMMdd-HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.now(); String string = formatter.format(dateTime); System.out.println(string); DateTimeFormatter formatter1=DateTimeFormatter.ofPattern("yyyyMMdd-HH:mm:ss"); LocalDateTime dateTime1 = LocalDateTime.parse("20160124-15:03:59", formatter1); System.out.println(dateTime1);