java - 从秒到日期的时间转换问题
问题描述
我有以下Long
变量以秒为单位保存纪元值,我正在尝试将其转换为Date
.
val seconds = 1341855763000
val date = Date(TimeUnit.SECONDS.toMillis(seconds))
输出比我预期的要差。我哪里做错了?
Actual: Wed Sep 19 05:26:40 GMT+05:30 44491
Expected: Monday July 9 11:12:43 GMT+05:30 2012
解决方案
输出比我预期的要差。我哪里做错了?
Actual: Wed Sep 19 05:26:40 GMT+05:30 44491
Expected: Monday July 9 11:12:43 GMT+05:30 2012
该值已经存在,milliseconds
并且使用TimeUnit.SECONDS.toMillis(seconds)
您错误地将其乘以1000
.
通过使用现代日期时间 API:
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant instant = Instant.ofEpochMilli(1341855763000L);
System.out.println(instant);
}
}
输出:
2012-07-09T17:42:43Z
通过使用 legacy java.util.Date
:
import java.util.Date;
public class Main {
public static void main(String[] args) {
System.out.println(new Date(1341855763000L));
}
}
输出:
Mon Jul 09 18:42:43 BST 2012
我建议您从过时且容易出错的java.util
日期时间 APISimpleDateFormat
切换到现代 java.time
日期时间 API 和相应的格式化 API(包,java.time.format
)。从Trail: Date Time了解有关现代日期时间 API 的更多信息。
推荐阅读
- message - OMNeT++ 模拟直接结束
- c++ - 分配给变量号的内存是在堆上还是在栈上?
- c# - c# linq .First 和 .Last 正常工作,.Max 抛出 'Sequence contains no elements'
- html - 如何将文本和图像添加到按钮并将它们垂直居中
- go - 使用通道(go 例程)在数组中找到最大值但面临死锁
- java - “mvn clean install”运行测试,但不运行“mvn clean site”
- android - 适用于 Android 的 gRPC 服务器
- javascript - Next.js SSR 站点的安全问题
- debugging - 为什么我不能在 C++ 项目中进入我的库源代码?
- python - 有没有办法避免在没有类属性或传递参数的递归遍历中重新访问/跟踪访问的节点?