gpt4 book ai didi

Java日期年份计算按年份计算两天

转载 作者:太空狗 更新时间:2023-10-29 22:48:43 25 4
gpt4 key购买 nike

如果您能想象的话,这会在我的软件中造成类似 Y2K 的错误。奇怪的是一年中只计算了两天的偏差一年,我不太确定如何排除故障。

输出:

03-Jan-2013
02-Jan-2013
01-Jan-2013
31-Dec-2013 ** strange
30-Dec-2013 ** strange
29-Dec-2012
28-Dec-2012
27-Dec-2012
26-Dec-2012
25-Dec-2012

我不确定 Java 日期实用程序的哪一部分会导致此类错误。

代码(由于测试太小,我包含了一个完整的工作程序):

import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;

public class DateT {

private static String getFormattedBackscanStartTime(int days) {

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");
Calendar workingDate = Calendar.getInstance();
workingDate.add(Calendar.DATE, -1 * days);

String formattedStartTime = dateFormat.format(workingDate.getTime());
return formattedStartTime;
}

public static void main(String args[]) {

for(int i = 35; i < 45; i++) {
System.out.println(getFormattedBackscanStartTime(i));
}
}
}

最佳答案

问题是:

"dd-MMM-YYYY"

YYYY 是周年,而不是日历年。您需要 yyyy

2012 日历年的最后两天是 2013 年周年的第一周。您通常应该只将周年与“一年中的周”说明符 (w) 结合使用.

关于Java日期年份计算按年份计算两天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755742/

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