DatePicker,Java GWT中的Date对象返回错误的值

时间:2013-02-28 09:32:17

标签: java date gwt datepicker

以下问题本周非常顽强。 我尝试使用以下方法获取用户选择的日期。

datePicker = new DatePicker();
datePicker.setValue(new Date(), true);
Date date = datePicker.getValue();
int year = date.getYear()+1900;
int month = date.getMonth();
int day = date.getDay();

我得到的都是奇怪的价值,比如今天02/28/2013我得到01/04/113。

我发现了一些像上面提到的方法被折旧的东西,我可以添加 1900年到今年。 对于这一年,添加一个数字可以工作,但不适用于月份和日期。

我还没有找到解决这个问题的好方法。 所以我有人暗示如何解决这个问题我会非常感谢你的帮助!

感谢您的时间!

2 个答案:

答案 0 :(得分:0)

Java日历有Julian和Gregorian日期组件。您无需添加1900。删除添加1900,您的代码应该可以正常工作。 Java本身通过添加1900处理它,并且如果日期小于1900,则进一步的datepicker会进行折腾。

GWT datepicker goes nuts under 1900

如果您觉得这个答案有帮助,请不要忘记投票,如果它能解决您的问题就更好。接受它。

答案 1 :(得分:0)

那是因为你添加的1900不是添加该数字的正确方法,Java具有内置功能来添加这些数字。所以从我这边你需要删除1900,你将能够得到你想要的正确答案。

如果您使用日期选择器,它会自动添加当前日期的日期。因此,如果您在当前的2013年度中添加1900,那将是一个问题。和DatePicker设置日期格式不是

            Date date = new Date();
            datePicker1.setDate(date);
            date = datePicker1.getDate();
            int year = date.getYear();
            int day = date.getDay();
            int month = date.getMonth();
            System.out.println(year+""+day+""+month);