Java中TimeStamp的字符串

时间:2014-07-21 12:11:38

标签: java datetime date-formatting

在我的应用程序中,我有一个要求,即用户以这种格式输入时间字符串:HH:MM:SS,我需要格式化,解析然后显示这些输入字符串之间的差异(以秒为单位)。

  

static long MyTimeStamp(String str)

是一个返回long值的静态方法。

String TimeString1="10:30:15";
String TimeString2="10:30:45";

long t1 =  MyTimeStamp(TimeString1); 
long t2 =  MyTimeStamp(TimeString2);

long t3 = t1 - t2;
System.out.println(t3); 

O / P应为30秒

3 个答案:

答案 0 :(得分:2)

尝试使用SimpleDateFormat类进行解析:

SimpleDateFormat dtf = new SimpleDateFormat("HH:mm:ss");
try {
    Date dtime = dtf.parse("23:34:12");
    System.out.println(dtime.toString());
} catch (ParseException ex) {
    System.err.println(ex.getMessage());
}

您可以使用Date类来计算时差:

SimpleDateFormat dtf = new SimpleDateFormat("HH:mm:ss");
try {
    Date t1 = dtf.parse("10:30:15");
    Date t2 = dtf.parse("10:30:45");
    System.out.println("Diff in seconds: " + ((t2.getTime()-t1.getTime())/1000));
} catch (ParseException ex) {
    System.err.println(ex.getMessage());
}

答案 1 :(得分:0)

一种可能的解决方案:

    public static long getMillis(String time){
        try {
            SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
            Date d = df.parse(time);
            return d.getTime();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return 0;
    }

    public static void main(String[] args) {

        long t3 = (getMillis("10:30:45") - getMillis("10:30:15"))/1000;
        System.out.println(t3);

    }

答案 2 :(得分:0)

这是代码 -

        String TimeString1="10:30:15";
        String TimeString2="10:30:45";
         SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("HH:mm:ss");
         Date date1 = null;
         Date date2 = null;
         try {
             date1 = DATE_FORMAT.parse(TimeString1);
             date2 = DATE_FORMAT.parse(TimeString2);

             long diff = date2.getTime()-date1.getTime();
             System.out.println(diff/1000);

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

输出 -

30