java - 如何使用 java-8 以 UTC 秒为单位转换时间和以秒为单位的时区偏移量?
问题描述
我有一个 UTC 秒的日期和它的时区偏移量。我想使用 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-8 DateTime API 中的 Instant 从具有偏移秒的纪元秒中获取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);
推荐阅读
- angular - 使用可观察对象的简单无限滚动分页
- php - PHP MySQL 获取订单的材料和数量
- java - 提供来自 J2EE 的静态非编译文件
- parsing - Scrapy - 解析对齐问题
- amazon-web-services - 100-200 upserts 并在 10 秒的窗口中插入 3 节点 redshift 集群是一种现实的架构吗?
- python - 如何从语言价格中删除 \r\n?
- python - 如何使用一种或多种不同类型的标签来标记对象,以便以后对其进行排序?
- mysql - 没有子查询,为只有空帖子的作者选择所有 author_id
- angularjs - ng-if,有没有办法在循环遍历数组时停止对数组的最后一个元素应用条件?
- c# - 如何使用 C# Selenium 在移动模拟器横向模式下启动 Chrome?