DateTimeFormatter默认提供了多种格式化方式,如果默认提供的不能满足要求,可以通过DateTimeFormatter的ofPattern方法创建自定义格式化方式。
public static void format() { LocalDate today = LocalDate.now(); // 两种默认格式化时间方式 String todayStr1 = today.format(DateTimeFormatter.BASIC_ISO_DATE); String todayStr2 = today.format(DateTimeFormatter.ISO_LOCAL_DATE); System.out.println("格式化时间:" + todayStr1); System.out.println("格式化时间:" + todayStr2); //自定义格式化 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); String todayStr3 = today.format(dateTimeFormatter); System.out.println("自定义格式化时间:" + todayStr3); } 4.2 解析时间4.1 中以何种方式格式化,这里需以同样方式解析。
public static void parse() { LocalDate date1 = LocalDate.parse("20080808", DateTimeFormatter.BASIC_ISO_DATE); LocalDate date2 = LocalDate.parse("2008-08-08", DateTimeFormatter.ISO_LOCAL_DATE); System.out.println(date1); System.out.println(date2); } 五、总结相较于Date 的优势
Instant 的精确度更高,可以精确到纳秒级;
Duration 可以便捷得到时间段内的天数、小时数等;
LocalDateTime 能够快速地获取年、月、日、下一月等;
TemporalAdjusters 类中包含许多常用的静态方法,避免自己编写工具类;
与Date的格式化方式SimpleDateFormat相比,DateTimeFormatter是线程安全的。
5.1 示例代码Github 示例代码
5.2 技术交流风尘博客
风尘博客-掘金
风尘博客-博客园