在我的应用程序中,我有一个要求,即用户以这种格式输入时间字符串: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秒
答案 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