我有一个以utc秒为单位的日期,其时区以sec为单位。我想使用java8 ZoneOffset类将其转换为格式为yyyy-mm-dd的日期字符串。以下是以秒为单位的时间和偏移量
long time = 1574962442,
long offset = 3600
现在我想使用java-8 DateTime API以以下格式获取日期?
String date = 2019-11-28 // in yyyy-MM-dd
您可以使用Java 8LocalDateTime
API来实现这一目标。
LocalDateTime dateTime = LocalDateTime.ofEpochSecond(1574962442, 0, ZoneOffset.ofTotalSeconds(3600));
// for format
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
您可以使用java-8 DateTime API中的Instant从带有偏移秒数的纪元秒获得即时OffsetDateTime
OffsetDateTime offsetDateTime = Instant.ofEpochSecond(time)
.atOffset(ZoneOffset.ofTotalSeconds(offset));
以及从中获取LocalDate
LocalDate localdate = offsetDateTime.toLocalDate(); //2019-11-28
如果要以字符串格式输出,请使用DateTimeFormatter
String output = localdate.format(DateTimeFormatter.ISO_LOCAL_DATE);