gpt4 book ai didi

java - 将 SAS 日期值转换为 Java YYYY-MM-DD

转载 作者:行者123 更新时间:2023-12-02 14:37:00 25 4
gpt4 key购买 nike

我将 SAS 日期对象存储为整数,它们看起来像:19725。我正在尝试编写java代码将日期转换为YYYY-MM-DD我在文档中看到 SAS 日期值是自 1960 年 1 月 1 日起的天数例如:

02 Jan 1960 将返回 12003 年 6 月 4 日将返回 15680

你能给出这个转换的java代码吗? IE。将 19725 之类的内容转换为日期格式:YYYY-MM-DD

我尝试了下面的逻辑,但 15680 给出了 2003-01-06 而不是 2003-06-04 作为输出。谁能指出错误。提前致谢。

int numdays = 15680;    
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.YEAR, 1960);
cal.add(Calendar.DAY_OF_MONTH, numdays);

String strdate = null;

SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD");

if (cal != null) {
strdate = sdf.format(cal.getTime());
}
System.out.println(strdate);

最佳答案

月份是0-based ,因此您将日历设置为二月,而不是一月。这应该可以解决问题:

Calendar cal = Calendar.getInstance();    
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, Calendar.JANUARY);
// ...

关于java - 将 SAS 日期值转换为 Java YYYY-MM-DD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com