如何使用java-8转换utc秒的时间和时差到秒的日期?

问题描述 投票:-2回答:2

我有一个以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 date java-8 unix-timestamp timezone-offset
2个回答
1
投票

您可以使用Java 8LocalDateTimeAPI来实现这一目标。

LocalDateTime dateTime = LocalDateTime.ofEpochSecond(1574962442, 0, ZoneOffset.ofTotalSeconds(3600));

// for format
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))

1
投票

您可以使用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);
© www.soinside.com 2019 - 2024. All rights reserved.