Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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
如何在Android/Java中找到两次之间的差异?_Java_Android_Datetime_Timertask_Date Difference - Fatal编程技术网

如何在Android/Java中找到两次之间的差异?

如何在Android/Java中找到两次之间的差异?,java,android,datetime,timertask,date-difference,Java,Android,Datetime,Timertask,Date Difference,可能重复: 我在HH:MM:SS格式的字符串数据类型的两个文本框中有两个日期值。如何找到它们之间的差异并在HH:MM:SS中得到结果?请帮助我…尽快 您拥有的代码将给出所列日期之间的毫秒差。答案可以简单地除以1000得到秒数。试试这个: SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("UTC")); try {

可能重复:


我在HH:MM:SS格式的字符串数据类型的两个文本框中有两个日期值。如何找到它们之间的差异并在HH:MM:SS中得到结果?请帮助我…尽快

您拥有的代码将给出所列日期之间的毫秒差。答案可以简单地除以1000得到秒数。

试试这个:

     SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");
     format.setTimeZone(TimeZone.getTimeZone("UTC"));
     try {
         Date date1 = (Date) format.parse("4:15:20");
         Date date2 = (Date) format.parse("2:30:30");
         //time difference in milliseconds
         long timeDiff = date1.getTime() - date2.getTime(); 
         //new date object with time difference
         Date diffDate = new Date(timeDiff); 
         //formatted date string
         String timeDiffString = format.format(diffDate); 
         System.out.println("Time Diff = "+ timeDiffString );
     } catch (ParseException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }
以上代码有一定的局限性。其他合适的方法可以是在字符串中手动转换时间差的长值,如下所示:

     long timeDiffSecs = timeDiff/1000;
     String timeDiffString = timeDiffSecs/3600+":"+
                             (timeDiffSecs%3600)/60+":"+
                             (timeDiffSecs%3600)%60;
     System.out.println("Time Diff = "+ timeDiffString);

首先将字符串日期转换为简单日期格式

public String getconvertdate1(String date)
{
    DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    inputFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    DateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy");
    Date parsed = new Date();
    try
    {
        parsed = inputFormat.parse(date);
    }
    catch (ParseException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    String outputText = outputFormat.format(parsed);
    return outputText;
}
//现在我可以用日期做任何事情

并使用SimpleDataFormat配置HH:MM:SS


你怎么知道它不起作用?样本/预期输入/输出?请查看:什么不起作用?他们不是应该进行比较吗?代码看起来很好。先生,我有两次是HH:MM:SS格式,现在我想从time2中减去time1,然后得到HH:MM:SS格式的结果…你能帮忙吗?先生,问题是我的两个时间都是字符串格式的…请帮助我:@jims我已经编辑了我的答案你的日期格式字符串首先转换它们…12-25 09:00:56.537:W/System.err1642:java.lang.ClassCastException:java.util.date不能转换为java.sql.date………ctr+shift+O按并选择java.util.date而不是java.sql.date.tnxaltaf…完成了…谢谢你…它不起作用了…朋友:@jims什么不起作用了?一定要突出这个问题。以上两个代码段都是工作代码。我在发布之前验证了它。第一种方法有一些限制,我已经提到过。第二种方法是最好的,谢谢。
 long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis
 long days = diff / (24 * 60 * 60 * 1000);// you get day difference between