1、在Java8中获取当前时间戳的三种方式(精确到毫秒),返回均为long类型:
- long timeMillis = System.currentTimeMillis();
- long now = SystemClock.now();
- long toEpochMilli = Instant.now().toEpochMilli();
2、将long类型时间戳转为Date类型:
Instant instant = Instant.now();
Date date1 = Date.from(instant);
3、Instant类型转为Date类型
Date date2 = new Date(instant.toEpochMilli());
3、将long类型时间戳转换为指定格式的北京时区的String类型
Instant instant = Instant.ofEpochMilli(System.currentTimeMillis());
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSS");
String dateTime = localDateTime.format(dateTimeFormatter);
其中ZoneId.systemDefault()表示为当前系统的默认时区,这里也可以设置时区,ZoneId是抽象类,他的子类是ZoneOffset,
ZoneOffset.of("+8")同样表示当前时区为北京时,ZoneOffset.UTC表示当前时区为UTC时