为什么从Java中的unix时间戳获取错误的周显示名称

现在我使用这个 Java 代码来获取周显示名称:

String dateTime = CustomDatetimeUtil.timeStamp2Date(response.getStatisticTime(), "yyyy-MM-dd");
                response.setStatisticDate(dateTime);
                String displayName = Instant.ofEpochSecond(response.getStatisticTime())
                        .atZone(ZoneId.of("Asia/Shanghai"))
                        .getDayOfWeek()
                        .getDisplayName(TextStyle.FULL, Locale.CHINA);

response.getStatisticTime()1614783599999。但我得到的显示名称是 · Sunday(???)。正确的值是星期三。我该怎么做才能获得正确的价值?

回答

您正在使用Instant.ofEpochSecond- 但您获得的值足够大,大概是自 Unix纪元以来的毫秒数,而不是秒数

所以基本上你需要使用Instant.ofEpochMilli代替。

我也建议将来使用Epoch Converter站点 - 它允许您输入一个数值,它会向您显示该值的含义,包括它在执行转换时假定的单位


以上是为什么从Java中的unix时间戳获取错误的周显示名称的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>