Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DateFormat.parse不工作。试图找出两次之间的差异_Java_Android_Date Format - Fatal编程技术网

Java DateFormat.parse不工作。试图找出两次之间的差异

Java DateFormat.parse不工作。试图找出两次之间的差异,java,android,date-format,Java,Android,Date Format,为了找出两次之间的差异,我编写了这段代码,但日期解析根本不起作用。 显示DateFormat.parse语句之前的Toast,但不显示该语句之后的Toast。我不明白问题是什么。有人能在这个代码中找到任何错误吗? 提前谢谢 private long findDelay(String currentTime, String startTime) { //currentTime = "10:58 AM" and startTime = "9:28 AM" long diff=0;

为了找出两次之间的差异,我编写了这段代码,但日期解析根本不起作用。 显示DateFormat.parse语句之前的Toast,但不显示该语句之后的Toast。我不明白问题是什么。有人能在这个代码中找到任何错误吗? 提前谢谢

private long findDelay(String currentTime, String startTime)
{
    //currentTime = "10:58 AM" and startTime = "9:28 AM"
    long diff=0;
    currentTime="6/1/16 "+currentTime;
    startTime="6/1/16 "+startTime;

    DateFormat format=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);

    try
    {
        Toast.makeText(this,"before parsing",Toast.LENGTH_SHORT).show();
        Date date1=format.parse(currentTime);
        Date date2=format.parse(startTime);
        Toast.makeText(this,"after parsing",Toast.LENGTH_SHORT).show();
        diff=date1.getTime()-date2.getTime();
    }catch (Exception e)
    {
        e.printStackTrace();
    }

    return diff/60000;
}
使用SimpleDataFormat:

   private long findDelay(String currentTime, String startTime)
{

    long diff=0;
    //currentTime = "10:58" and startTime = "9:28"

    SimpleDateFormat format=new SimpleDateFormat("hh:mm");
    try
    {
        Toast.makeText(this,"before parsing",Toast.LENGTH_SHORT).show();
        Date d1 = format.parse(currentTime);
        Date d2 = format.parse(startTime);
        Toast.makeText(this,"after parsing",Toast.LENGTH_SHORT).show();

        diff=d1.getTime()-d2.getTime();

    }catch (Exception e)
    {
        e.printStackTrace();
    }

    return diff/60000;
}

您的设备和区域设置上的短日期格式是否明确
d/M/yy
?考虑到您只有一段时间来解析,您有没有理由不使用
getTimeInstance
?实际上我也尝试过SimpleDateFormat,但它的工作方式也是一样的。您是如何尝试
SimpleDateFormat
?如果你的格式总是
H:mm a
为什么不使用它?你能给我一些代码来找出这两个时间之间的差异:time1=10:58和time2=9:28?我已经提出了一个建议:用你的特定格式试试日期格式化程序。