我试图从我的日期选择器中获取日/月/年。我的问题是 Month en the day 从来都不正确。我给你下面的代码。月份是正确的,但当月份是 12 月时它会失败。这一天永远不会正确。
public class myOnDateChangedListener implements OnDateChangedListener {
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
if (view.getId() == R.id.datePicker1) {
startDay = view.getDayOfMonth();
if(view.getMonth() == 11){
startMonth = 12;
}else{
startMonth = (view.getMonth() + 1);
}
startYear = view.getYear();
}
if (view.getId() == R.id.datePicker2) {
endDay = view.getDayOfMonth();
if(view.getMonth() == 11){
endMonth = 12;
}else{
endMonth = (view.getMonth() + 1);
}
endYear = view.getYear();
}
}
}
最佳答案
为什么使用 View 值,而不是方法中传递的值?也不需要 month == 11 的特殊情况。试试这个代码(修改你自己的):
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
if (view.getId() == R.id.datePicker1) {
startDay = dayOfMonth;
startMonth = monthOfYear + 1;
startYear = year;
}
if (view.getId() == R.id.datePicker2) {
endDay = dayOfMonth;
endMonth = monthOfYear + 1;
endYear = year;
}
}
编辑:阅读您的评论后,我觉得您遇到的问题可能是因为您方面的一些其他困惑:我的意思是 Java Date 类构造函数像 this 这样的事实。 :
public Date(int year, int month, int date)
初始化从 1900 年 1 月 1 日开始的日期。警告:月份在 0 到 11 之间,日期在 1 到 31 之间。看一下构造函数。如果您想检测问题是出在 DatePicker 本身还是之后出在 Java 代码中,请尝试记录以缩小原因范围。
关于java - Android 使用日期选择器之外的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8825189/