加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java日期年度计算是每年关闭两天

发布时间:2020-12-14 05:24:21 所属栏目:Java 来源:网络整理
导读:如果可以想象,这会在我的软件中造成Y2K风格的错误.奇怪的是,一年一度的计算只发生在一年的两天,我不太确定如何排除故障. 输出: 03-Jan-201302-Jan-201301-Jan-201331-Dec-2013 ** strange30-Dec-2013 ** strange29-Dec-201228-Dec-201227-Dec-201226-Dec-20
如果可以想象,这会在我的软件中造成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).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读