我有两个格式的字符串" hh:mm:ss"。我想只获取两个字符串的小时部分并找到它们之间的区别。我该怎么做。我试过Dateformat并解析函数,但当我减去时,它会告诉坏操作数类型。 代码:
String ta="";
String tb="";
int diff;
Scanner s=new Scanner(System.in);
ta=s.nextLine();
tb=s.nextLine();
DateFormat sdf = new SimpleDateFormat("hh");
Date date1 = sdf.parse(ta);
Date date2 = sdf.parse(tb);
diff=sdf.format(date1)-sdf.format(date2);
if(diff==20)
System.out.println("Twenty");
答案 0 :(得分:3)
您可能根本不需要将其转换为Date
:
String time1 = "07:00:55";
String time2 = "05:00:33";
String time1Sub = time1.substring(0, time1.indexOf(':'));
String time2Sub = time2.substring(0, time2.indexOf(':'));
System.out.println(Integer.parseInt(time1Sub) - Integer.parseInt(time2Sub));
修改强>
根据下面的评论,如果您想要完整小时,您可以检查小时位置的差异(如果有更好的方法,可以随时编辑)。
String hour1 = time1.substring(time1.lastIndexOf(':') - 2, time1.lastIndexOf(':'));
String hour2 = time2.substring(time1.lastIndexOf(':') - 2, time2.lastIndexOf(':'));
int result = Integer.parseInt(time1Sub) - Integer.parseInt(time2Sub);
System.out.println(Integer.parseInt(hour1) < Integer.parseInt(hour2) ? result - 1 : result);
答案 1 :(得分:0)
使用java.time:
public static void main(String[] args) {
java.time.LocalTime a = java.time.LocalTime.parse("12:00:00");
System.out.println(a.getHour());
}