Java 为什么我的android日期选择器显示年份错误?
我已经为我的应用程序创建了这个日期选择器,并将其设置为在用户选择日期后显示祝酒词。这只是一个测试,在我继续做其他事情之前,然而,当我选择一个日期时,它会显示错误的年份。例如,当我选择今天的日期时,祝酒词将显示:“日期是:3917-04-10” 感谢您的帮助 编辑:我修好了。我所要做的就是改变这一行:Java 为什么我的android日期选择器显示年份错误?,java,android,date,datepicker,Java,Android,Date,Datepicker,我已经为我的应用程序创建了这个日期选择器,并将其设置为在用户选择日期后显示祝酒词。这只是一个测试,在我继续做其他事情之前,然而,当我选择一个日期时,它会显示错误的年份。例如,当我选择今天的日期时,祝酒词将显示:“日期是:3917-04-10” 感谢您的帮助 编辑:我修好了。我所要做的就是改变这一行: start = new Date(yyyy,mm,dd); 关于这一行: start = calendar.getTime(); 不要使用新日期(yyyy、mm、dd)使用 Calenda
start = new Date(yyyy,mm,dd);
关于这一行:
start = calendar.getTime();
不要使用新日期(yyyy、mm、dd)代码>使用
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, yyyy);
c.set(Calendar.MONTH, mm);
c.set(Calendar.DAY_OF_MONTH, dd);
c.getTime();
不推荐使用
Date
构造函数。你可以看到
This constructor was deprecated in API level 1. As of JDK version 1.1, replaced by Calendar.set(year + 1900, month, date) or GregorianCalendar(year + 1900, month, date)
最好像在创建对话框之前使用getter一样使用日历
对象的setter
calendar.set(Calendar.YEAR, yyyy);
calendar.set(Calendar.MONTH, mm);
calendar.set(Calendar.DAY_OF_MONTH, dd);
是的,您可以使用新日期(yyyy-1900,mm,dd)
。但是它很糟糕。此新日期()已被弃用,您可以(更好)使用日历
您的代码如下所示:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,yyyy);
cal.set(Calendar.DAY_OF_MONTH,dd);
cal.set(Calendar.MONTH,mm);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
entered_Start = sdf.format(cal.getTime());
Toast.makeText(getActivity(), "Date is: "+ entered_Start, Toast.LENGTH_LONG).show();
您是否设置了日期格式?默认情况下,datepicker dateformat是默认值:“mm/dd/yy”
您使用的已弃用的Date
构造函数将1900添加到年份中。因此,如果你通过2017年,你会在3917年得到一个日期。如果你应该使用它(不推荐),你需要在2017年通过117。
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,yyyy);
cal.set(Calendar.DAY_OF_MONTH,dd);
cal.set(Calendar.MONTH,mm);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
entered_Start = sdf.format(cal.getTime());
Toast.makeText(getActivity(), "Date is: "+ entered_Start, Toast.LENGTH_LONG).show();