jdk1.8中新增了 LocalDate 与 LocalDateTime等类来解决日期处理方法,同时引入了一个新的类DateTimeFormatter来解决日期格式化问题。
LocalDateTime,DateTimeFormatter两个类都没有线程问题,只要你自己不把它们创建为共享变量就没有线程问题。
格式化:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM月dd日 HH:mm");
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
LocalDateTime dateTime= LocalDateTime.parse(beginDateStr, formatter1);
String format = formatter.format(dateTime);
(注意,格式化表达式需要完全保持一致,否则会报错;)
java.time.format.DateTimeParseException: Text '2017-09-25 19:00:00.000' could not be parsed at index 23
计算时间差:
LocalDateTime now = LocalDateTime.now();
System.out.println("计算两个时间的差:");
LocalDateTime end = LocalDateTime.now();
Duration duration = Duration.between(now,end);
long days = duration.toDays(); //相差的天数
long hours = duration.toHours();//相差的小时数
long minutes = duration.toMinutes();//相差的分钟数
long millis = duration.toMillis();//相差毫秒数
long nanos = duration.toNanos();//相差的纳秒数
System.out.println(now);
System.out.println(end);