如果可以想象,这会在我的软件中造成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).
原文地址:https://www.jb51.cc/java/122700.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。