java - 将 SAS 日期时间值转换为 Java YYYY-MM-DD HH :mm:ss

标签 java date datetime sas

我有来自 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/

相关文章:

java泛型边界类型

javascript - 将日期(yyyy-mm-dd)转换为 yyyy MMM dd javascript

php - 获取最近过去的星期六(上星期六)

java - 插入日期并得到错误的格式

c++ - 如何使用 C++ 将时区化的 XML 类型 dateTime 转换为 time_t

java - 根据 Struts2 操作中调用的操作方法定义不同的验证

java - 无法连接到 TitanDB - 具有相同实例 ID [] 的 Titan 图已经打开。可能需要强制关机

java - 使用动态规划遍历矩阵的最大成本

java - 我想通过比较两天来打印 31 个工作日。它应该以有效格式打印日期

java - Unix 时间戳的时间转换