Java 单独运行时间:HH:MM:SS

Java 单独运行时间:HH:MM:SS,java,Java,给定一个字符串格式的日期和时间,如“201050”,我通过引用互联网成功地将其转换为SDF。那么,在我刚刚创建的同一天,我该如何操作呢 X=3600*HH+60*MM+SS public static void main(String[] args) throws ParseException { int numberOfTests=3; String [] timeStamps=new String[3]; timeStamps[0]="

给定一个字符串格式的日期和时间,如“201050”,我通过引用互联网成功地将其转换为SDF。那么,在我刚刚创建的同一天,我该如何操作呢

X=3600*HH+60*MM+SS

    public static void main(String[] args) throws ParseException {
        int numberOfTests=3;
        String [] timeStamps=new String[3];
        timeStamps[0]="10 10 10";
        timeStamps[1]="10 10 16";
        timeStamps[2]="10 10 50";

        int [] X=new int[3];
        DateFormat sdf = new SimpleDateFormat("hh mm ss");
        Date t1=sdf.parse(timeStamps[0]);
        Date t2=sdf.parse(timeStamps[1]);
        Date t3=sdf.parse(timeStamps[2]);

        //X=3600*HH+60*MM+SS
这就是我达到的程度。我知道在这之后我要做什么,我已经把一切都安排好了,但是我被困在这里了


起初我试着使用
split
来实现它,但后来它变得复杂了,所以我坚持使用这种方法。

如果你只想应用
X=3600*HH+60*MM+SS
你不需要传递日期(无论是
date
还是
LocalTime
),只要使用
字符串即可

for (int i = 0; i < timeStamps.length; i++) {
    String[] parts = timeStamps[i].split(" ");
    X[i] = Integer.parseInt(parts[0]) * 3600 + Integer.parseInt(parts[1]) * 60 + Integer.parseInt(parts[2]);
}
System.out.println(Arrays.toString(X)); // [36610, 36616, 36650]

这有什么问题吗?我想单独使用HH MM SS,并在您创建的
日期
实例上对itSo调用方法进行操作…?我是个新手,不知道所有的方法。你能指定我必须使用的吗
t1.getTime()
我后来在程序中使用了。后来在程序中,我必须专门对日期格式进行操作,所以我以前对它进行了转换。所以
split
是唯一的方法吗?@NewJava是的,如果(只是
parseInt
而不是
paresInt
),但是你也可以传递一个日期,看看我的编辑好的,非常感谢Azro。这将有助于我以后的计划以及!是的,那是个打字错误,sorry@NewJava注意azro使用
java.time
API而不是
java.util.Date
。总是喜欢前者。
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("HH mm ss");
for (int i = 0; i < timeStamps.length; i++) {
    LocalTime time = LocalTime.parse(timeStamps[i], fmt);
    X[i] = time.getHour() * 3600 + time.getMinute() * 60 + time.getSecond();
}
System.out.println(Arrays.toString(X)); // [36610, 36616, 36650]