java - 以 'yyyy-MM-dd' 格式计算当前年份在 Java 中设置了不正确的值

标签 java

我使用以下代码以 yyyy-MM-dd 格式计算当前年份值 但是下面的代码将 paramStartDate 值指定为 0001-01-01,这是不正确的 应该是“2014-01-01”

else if(scopeSelected != null && scopeSelected.equalsIgnoreCase("Year To Date")){

                    Calendar calendarStart = Calendar.getInstance();
                    calendarStart.set(Calendar.YEAR,calendarStart.YEAR);
                    calendarStart.set(Calendar.MONTH,0);
                    calendarStart.set(Calendar.DAY_OF_MONTH,1);
                    Date startDate=calendarStart.getTime();
                    DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
                    paramStartDate = dateFormat1.format(startDate);
                    setParamStartDate(paramStartDate);
                }   

最佳答案

这就是问题:

calendarStart.set(Calendar.YEAR,calendarStart.YEAR);

您将值设置为 Calendar.YEAR,它是一个值为 1 的常量。

如果您不想更改年份数字,只需完全删除此行即可。

(顺便说一句,我强烈建议使用 Joda Time 而不是内置的 Java API。Joda Time 更加干净。)

编辑:对于添加年份的新要求,您可以使用

calendarStart.add(Calendar.YEAR, 1);

关于java - 以 'yyyy-MM-dd' 格式计算当前年份在 Java 中设置了不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675094/

相关文章:

java - 为什么 Tomcat8.exe 启动的 JAVA_HOME 与 Windows 环境变量中设置的 JAVA_HOME 不同?

java - 如何检测Android应用程序是否以屏幕兼容模式运行?

java - 使用库检查空值比获取 NPE 有何优势?

java.lang.RuntimeException,由: android. view.InflateException引起

java - 将嵌套 java 对象转换为 Jackson JSON

java - 如何在数据库中存储哈希密码?

java - 如何使 JAXB 实例化通用父类(super class)的子类列表元素

java - 使用for循环比较多种投资选择

java - Tomcat 拒绝访问域上的共享目录

java - 循环遍历多个数组 - 电话号码到单词生成器