对很多应用来说,时间和日期的概念都是必须的。像生日,租赁期,事件的时间戳和商店营业时长,等等,都是基于时间和日期的;
然而,Java却没有好的API来处理它们。在Java SE 8中,添加了一个新包:java.time,它提供了结构良好的API来处理时间和日期。
新的API:java.time,由5个包组成:
java.time – 包含值对象的基础包
java.time.chrono – 提供对不同的日历系统的访问
java.time.format – 格式化和解析时间和日期
java.time.temporal – 包括底层框架和扩展特性
java.time.zone – 包含时区支持的类
大多数开发者只会用到基础和format包,也可能会用到temporal包。因此,尽管有68个新的公开类型,大多数开发者,大概,将只会用到其中的三分之一。
这里就不多数,来一段经常会用的时间与字符串转换的代码
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//时间转为字符串
LocalDateTime date =LocalDateTime.now();
String str = date.format(f); // 2014-11-07 14:10:36
//字符串转为时间
date = LocalDateTime.parse(str,f);
这把你从格式化器自己的格式化和解析方法中隔离开来。
如果你想控制格式化的语言环境,调用格式化器的withLocale(Locale)方法。相似的方式可以允许你控制格式化的历法系统、时区、十进制数和解析度。
如果你需要更多的控制权,查看DateTimeFormatterBuilder类吧,它允许你一步一步的构造更复杂的格式化器。它还提供大小写不敏感的解析,松散的解析,字符填充和可选的格式。
该贴由koei123转至本版2015-6-2 8:56:16