我有来自 sas 的日期时间值(10 位数字),看起来像 1627741415
。
我想在我的 java 代码中转换它们以生成 Java 日期时间 YYYY-MM-dd HH:mm:ss.0
我找不到 SAS 日期时间是如何工作的。
1627741415
对应于 July 31, 2011 2:33:35 p.m.
所以我希望它是
2011-07-31 14:33:35.0.
感谢任何帮助。 提前致谢
最佳答案
因为 SAS 日期时间是一个表示 1960 年 1 月 1 日与指定日期之间的秒数的值。我认为您可以使用从 1970 年开始的纪元时间的差异。
我使用代码做了一个快速测试:
LocalDateTime dateTime = LocalDateTime.parse("2011-07-31T14:33:35.0");
System.out.println(dateTime.toString());
System.out.println(dateTime.toEpochSecond(ZoneOffset.UTC));
System.out.println(" Difference : "+ (1627741415 - dateTime.toEpochSecond(ZoneOffset.UTC) ));
您可以使用 315618600 的差值来计算您的日期。
假设您有 1627741415,减去 315618600 得到一个可以在您的应用程序中正常使用的纪元日期。
关于java - 将 SAS 日期时间值转换为 Java YYYY-MM-DD HH :mm:ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30537048/