Operando en tiempo individual: HH: MM: SS

NewJava:

Dada una fecha y hora en formato de cadena como "20 10 50", me he convertido con éxito en un SDF refiriéndose internet. Ahora ¿Cómo opero en la misma fecha que acabo de crear?

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

Esto es lo lejos que he llegado. Yo sé lo que tengo que hacer después de esto, tengo todo resuelto, pero me estoy atascado aquí.

Traté de hacerlo utilizando spliten un primer momento, pero se convirtió en complejo más adelante, así que me quedé con este método.

Azro:

Si lo que desea es solicitar X = 3600*HH + 60*MM + SSque no es necesario pasar a través de una fecha (ya sea Dateo LocalTime) sólo tiene que utilizar elString

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]

Para ver un ejemplo de un análisis, se verá que se obtiene el mismo pero más costosa con un análisis de LocalTime

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]

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=389757&siteId=1
Recomendado
Clasificación