当我使用SimpleDateFormatter.parse()函数时出现错误。我让用户分别通过DatePicker和TimePicker输入日期和时间,我从两个选择器收集信息并尝试创建一个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());
感谢您对此错误提供任何帮助。
谢谢, SID
答案 0 :(得分:0)
您在onClick侦听器之外解析date
,因此,可能在此时变量date
未初始化。我认为你应该在监听器中移动try / catch循环。
答案 1 :(得分:0)
问题是date
为空。在按下按钮之前,onClickListener中的代码将不会执行。
答案 2 :(得分:0)
这不是未初始化的sdf
对象,这可能是data
仍为空的字符串(尽管我们在看到之前的代码之前无法确定)。您尝试解析date
,但是根据您发布的内容,您只需在OnClickListener
中修改/设置值,直到点击后才会调用该值。
所以你基本上做的是:
date
。通过将默认值设置为date来修复它,或者将解析也放在监听器中(无论答案是什么,你需要正确的逻辑)