先上代码:
ZonedDateTime dateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()),zone
);
//2019-12-01T19:01:46+08:00String formattedDate = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")
);
//2019-12-01String formattedTime = dateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss")
);
//19:01:46
ZonedDateTime类
ZonedDateTime是Java 8中用于表示带有时区信息的日期和时间的类。它包含了日期、时间和时区的信息。
ZonedDateTime.ofInstant是ZonedDateTime类的一个静态方法,用于根据给定的时间戳和时区创建一个ZonedDateTime对象。它的方法签名如下:
public static ZonedDateTime ofInstant(Instant instant, ZoneId zone)
参数说明:
instant:一个Instant对象,表示时间戳。Instant是一个不带时区信息的时间点,通常用于表示从1970年1月1日午夜开始经过的秒数或毫秒数。zone:一个ZoneId对象,表示时区。ZoneId是一个用于表示时区标识符的类,例如:"Asia/Shanghai"、"America/New_York"等。
Instant类
Instant是Java 8中用于表示时间戳的类。它表示从1970年1月1日午夜开始经过的秒数或毫秒数。
Instant.ofEpochMilli()是Instant类的一个静态方法,用于根据给定的以毫秒为单位的时间戳创建一个Instant对象。它的方法签名如下:
public static Instant ofEpochMilli(long epochMilli)
参数说明:
epochMilli:一个long类型的参数,表示以毫秒为单位的时间戳。
DateTimeFormatter类
dateTime.format()是DateTimeFormatter类的一个实例方法,用于将日期时间对象格式化为指定的字符串表示形式。它的方法签名如下:
public String format(TemporalAccessor temporal)
参数说明:
temporal:一个实现了TemporalAccessor接口的对象,表示日期时间。ZonedDateTime是TemporalAccessor接口的一个实现类。
DateTimeFormatter.ofPattern("HH:mm:ss")是DateTimeFormatter类的一个静态方法,用于创建一个日期时间格式化器对象。它的方法签名如下:
public static DateTimeFormatter ofPattern(String pattern)
参数说明:
pattern:一个字符串,表示日期时间的格式模式。