当我使用SimpleDateFormatter.parse()函数时,我得到一个错误。我让用户分别通过DatePicker和TimePicker输入日期和时间,我从这两个选择器中收集信息,并尝试创建一个date对象,以便将其与另一个Date对象(系统日期)进行比较。
但是,当我试图解析日期以形成日期格式时,我得到了错误。

导致错误的代码块是
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int day = dpicker.getDayOfMonth();
int month = dpicker.getMonth() + 1;
if (month < 10)
{
monthS = "0" + month;
}
else
{
monthS = String.valueOf(month);
}
int year = dpicker.getYear();
int minutes = tpicker.getCurrentMinute();
int hours = tpicker.getCurrentHour();
if (hours < 10)
{
hoursS = "0" + hours;
}
else
{
hoursS = String.valueOf(hours);
}
date = year + "-" + monthS + "-" + day + " " + hoursS + ":" + minutes ;
tview.setText("Date and Time are" + date) ;
}
});
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:MM");
try {
newDate = sdf.parse(date);
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tview2.setText(newDate.toString());如果您能帮助我解决这个错误,我将不胜感激。
谢谢,希德
发布于 2011-04-26 12:06:27
这不是未初始化的sdf对象,这可能是仍然为空的data字符串(尽管我们在看到之前的代码之前无法确定)。您尝试解析date,但从您发布的内容来看,您仅在OnClickListener中修改/放置它的值,直到单击才会被调用。
所以你基本上要做的是:
在初始化字符串date之前,声明string date.
date。通过将缺省值设置为date来修复它,或者也可以将解析放在侦听器中(无论哪种方法都能满足您需要的正确逻辑)
https://stackoverflow.com/questions/5785628
复制相似问题