时间计算得到“日期不能投”

时间:2013-10-28 20:08:21

标签: java android time

我的计算时间错误

因为我没有很多时间计算经验,所以有一些帮助

运行错误的代码

Calendar c = Calendar .getInstance();

    //uur ophalen
    SimpleDateFormat uf = new SimpleDateFormat("HH:mm");
    String stoptijd =uf.format(c.getTime());

    //datum ophalen
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String datum = df.format(c.getTime());

    //werknemernummer ophalen
    // TODO
    int werknemer = 5;

    //uitrekenen hoeveel totaaluren moet zijn
    String Starttijd = bezur.leesbegintijd(bezoeknummer);
    SimpleDateFormat datumberekening = new SimpleDateFormat("HH:mm");

    long werktijd = 0;

        try {
            Date stopt = (Date) datumberekening.parse(stoptijd);
            Date startt;

            startt = (Date) datumberekening.parse(Starttijd);
            werktijd = stopt.getTime() - startt.getTime();

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

我的logcat:

10-28 19:54:11.914: E/AndroidRuntime(23145): FATAL EXCEPTION: main
10-28 19:54:11.914: E/AndroidRuntime(23145): java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
10-28 19:54:11.914: E/AndroidRuntime(23145):    at com.example.deceunincktechniekers.bezoekrapporten.stopwerkuren(bezoekrapporten.java:200)
10-28 19:54:11.914: E/AndroidRuntime(23145):    at com.example.deceunincktechniekers.bezoekrapporten.handlescan(bezoekrapporten.java:117)
10-28 19:54:11.914: E/AndroidRuntime(23145):    at com.example.deceunincktechniekers.bezoekrapporten$1.onEditorAction(bezoekrapporten.java:51)

什么可以做得更好? 提前谢谢

1 个答案:

答案 0 :(得分:3)

您导入的是错误的班级,java.sql.Datejava.util.Date不同。 SimpleDateFormat.parse()会返回java.util.Datejava.sql.Date仅在您使用SQL时才有用 - 如果是这样,您可以按如下方式将java.util.Date转换为它:

java.sql.Date sqlDate = new java.sql.Date(datumberekening.parse(stoptijd).getTime());