【问题标题】:DatePicker setting month wrongDatePicker 设置月份错误
【发布时间】:2014-08-28 09:21:58
【问题描述】:

谁能告诉我为什么将日期设置为下个月而不是本月?

即使我将 dateFormatted 变量设置为“28/08/2014”,它也将日期设置为“28/07/2014”。

我可以简单地在当月去-1,但它会弄乱一月的日期。

我还有其他方法可以设置日期吗?

谢谢

        UtilDateModel model;
        JDatePanelImpl datePanel;
        DatePickerImpl datePicker;

        model = new UtilDateModel();
        model.setDate(yearInt, monthInt, dayInt);
        model.setSelected(true);
        datePanel = new JDatePanelImpl(model);
        datePicker = new JDatePickerImpl(datePanel);


        // String dateFormatted = (String) result[1];
        String dateFormatted = "28/08/2014";
        System.out.println("Date Formatted : " + (String) result[1]);
        int day = Integer.parseInt(dateFormatted.substring(0, 2)); // Correct
        int month = Integer.parseInt(dateFormatted.substring(3, 5)); // Correct
        int year = Integer.parseInt(dateFormatted.substring(6, 10)); // Correct
        System.out.println(day);
        System.out.println(month);
        System.out.println(year);
        model.setDate(year, month, day);
        model.setSelected(true);

【问题讨论】:

    标签: java sql datepicker


    【解决方案1】:

    你做的日期解析错误,请使用 SimpleDateFormat 或类似的

    您看到的问题可能与某些字段是从 0 开始的,而有些是从 1 开始的事实有关。

    更新

    不应将日期作为字符串存储在数据库中,而应使用可用的日期类型。

    一般来说,日期解析比您想象的要复杂得多。 DST、闰年、语言……都在起作用。

    最新的 java 迭代完全重写了基于 joda 时间 (http://www.joda.org/joda-time/) 的日期处理,但您也可以在 java 中使用“旧”的日期解析方式,这还不错,只是不同。

    你应该看看 SimpleDateFormat 的 javadoc,它会告诉你为什么你需要小写的“yyyy”和大写的“MM”。格式化程序将为您提供一个日期,您可以使用日历查询所需字段。

    它会一直考虑有关日期处理的所有琐碎细节。

    【讨论】:

    • 好的,感谢 0 索引数组的意义。另外,当您说我解析错误时,您能否快速解释或链接如何从字符串中设置 DatePicker。例如,它作为字符串“28/08/2014”存储在数据库中。这是在 SQL 中存储日期的错误方法吗?此外,我们在爱尔兰使用不同的格式。它认为这就是为什么我不能使用 SimpleDateFormat。我们使用 DD/MM/YYYY。
    【解决方案2】:

    我不知道 'JDatePicker' 包,但在做了一些研究后,我找到了this,请阅读此页面上的第 3 条。它说月份数是从 0 开始的,所以 januari 应该是 0(第 1 个月减去 1)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2011-05-26
      • 2014-12-01
      • 2015-04-01
      • 2011-09-13
      相关资源
      最近更新 更多