Java DateFormat.parse不工作。试图找出两次之间的差异
为了找出两次之间的差异,我编写了这段代码,但日期解析根本不起作用。 显示DateFormat.parse语句之前的Toast,但不显示该语句之后的Toast。我不明白问题是什么。有人能在这个代码中找到任何错误吗? 提前谢谢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;
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?我已经提出了一个建议:用你的特定格式试试日期格式化程序。