jdk 1.8以后新的常用日期时间API
//获取当前日期(年月日)、时间(时分秒)、日期➕时间(年月日时分秒)
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
//相较于另外两个用的频率要高一些。
LocalDateTime localDateTime = LocalDateTime.now();
通过调用get方法,获取更多的时间。
这三个类有点类似于Calendar
Instant 类就类似于java.util.Date类。
//获得到的是本初子午线对应的标准时间。
Instant instant = Instant.now();
//输出的时间比现在的时间慢了八个小时。
//如果想获得现在的时间需要 + 8 小时。
instant.atOffset(ZoneOffset.ofHours(8));
伦敦 格林威治时间(本初子午线),上海东八区比格林威治时间差8个小时。
时间戳指的是当前时间距离1970年1月1日0时0分0秒 的毫秒数。
//时间格式化的类
DateTimeFormatter :格式化或者解析日期或者时间,类似于SimpleDateFormat
DateTimeFormatter有三种实例化的方式。
- `
``//创建 DateTimeFormatter formatter =
DateTimeFormatter.ISO_LOCAL_DATE_TIME; //Date 类型转化为String类型
LocalDateTime localDateTime = LocalDateTime.now(); String str1 =
formatter.format(localDateTime);
//String类型转化为Date类型。 LocalDateTime localDateTime =
formatter.parse(str1); ```
前两种一般不常用,因为格式已经定下来了,不可以自己定义。
- 第三种自定义格式 如ofPattern(“yyyy-MM-dd hh:mm:ss E”); 类似于SimpleDateFormat
//
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
//时间格式化 转为为String类型
String str = formatter.format(LocalDateTime.now());
System.out.println("str");
//解析就使用parse方法。把String类型转为Date类型。
时间的API非常庞大,这里只是列出了最常用的方法,和时区相关的基本概念,详情查看jdk1.8 的API。