Android:使用simpledateformat显示时间

时间:2012-12-07 20:43:05

标签: android time simpledateformat

我正在尝试显示用户输入的时间,无论是在toast中还是使用基本的println命令。如果时间格式正确,我想将其与当前时间一起输入数据库。

这是我到目前为止所做的:

public void addListenerOnButton ()
{
    spinner_hours = (Spinner)findViewById(R.id.hours);
    spinner_minutes = (Spinner)findViewById(R.id.minutes);
    btnSubmit = (Button) findViewById(R.id.btnSubmit);
    btnSubmit.setOnClickListener(new OnClickListener() {

        @Override
          public void onClick(View v) {
            Date time;
            String enteredTime= String.valueOf(spinner_hours.getSelectedItem())+String.valueOf(spinner_minutes.getSelectedItem())+"00";
            SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");

            try {
                time= format.parse(enteredTime);
                System.out.println(enteredTime);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        //   Toast.makeText(MainActivity.this,
        //              "Your alarm has been set for : " + time,
        //                  Toast.LENGTH_SHORT).show();

          }
    });
}

如果我在try块中放入toast(在下面评论),那么当我运行应用程序时它不会显示出来。如果我放一个system.out.println它不会打印任何东西。如何打印输入的时间?

另外,我想在数据库中以相同的格式(“HH:mm:ss”)输入当前时间。关于如何做到的任何想法?

2 个答案:

答案 0 :(得分:1)

它可能会抛出异常,因为System.out.println应该有效。尝试替换它:

String enteredTime= String.valueOf(spinner_hours.getSelectedItem())+String.valueOf(spinner_minutes.getSelectedItem())+"00";

由此:

String enteredTime= String.valueOf(spinner_hours.getSelectedItem())+ ":" + String.valueOf(spinner_minutes.getSelectedItem())+":00";

您似乎错过了:小时和分钟之间以及00之前,解析失败。

答案 1 :(得分:0)

首先尝试打印从Spinner获得的值

 System.out.println(spinner_hours.getSelectedItem().toString());
 System.out.println(spinner_minutes.getSelectedItem().toString());

如果这没有任何价值,那么问题就在这里。