Cómo mostrar sólo la parte del tiempo a partir de la fecha de tiempo de combinación en java

Soy nuevo en Java. Estoy recuperando mi primera columna de la base de datos en una Matriz de Cadena que representa los datos como:

2014-09-01 10:00:00.000

Ahora quiero mostrar sólo el tiempo como:

10:00:00

Cómo hacerlo?
Mi código para recuperar mi Columna es:

JS:

public String[] getChartTime() throws SQLException {
  List < String > timeStr = new ArrayList < String > ();
  String atime[] = null;
  getConnection();
  try {
    con = getConnection();


    String sql = "exec vcs_gauge @gauge_name=?,@first_rec_time=?,@last_rec_time=?";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println("date is " + df.format(currentDate));
    clstmt = con.prepareCall(sql);
    clstmt.setString(1, "vs3_bag");
    clstmt.setString(2, "2014-09-01 10:00:00");
    clstmt.setString(3, "2014-09-01 11:00:00");
    clstmt.execute();
    rs = clstmt.getResultSet();

    while (rs.next()) {
      //Just get the value of the column, and add it to the list
      timeStr.add(rs.getString(1));

    }

  } catch (Exception e) {
    System.out.println("\nException in  Bean in getDbTable(String code):" + e);
  } finally {
    closeConnection();
  }
  //I would return the list here, but let's convert it to an array
  atime = timeStr.toArray(new String[timeStr.size()]);
  for (String s: atime) {
    System.out.println(s);
  }

  return atime;


}

  • posibles duplicados de Java cadena a la fecha de conversión
  • Por favor, busque en StackOverflow antes de publicar. Tu Pregunta los temas que se han abordado en cientos de preguntas y respuestas. Consejos: (1) cuando serializar una fecha de valor de tiempo de una cadena, utilice el estándar de formato ISO 8601. (2) Para una base de datos, fecha y hora tipo de datos en lugar de cadenas. Probablemente la marca de tiempo CON la ZONA horaria. Las bases de datos Postgres apoyo de una matriz de valores.
InformationsquelleAutor SRY_JAVA | 2014-11-12

4 Kommentare

  1. 6

    Uso SimpleDateFormat:

    java.util.Date date = new java.util.Date();
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    System.out.println(sdf.format(date));

    Si usted tiene la fecha como una Cadena, se pueden analizar a un java.util.Fecha en un paso antes de:

    SimpleDateFormat sdf = new SimpleDateFormat("YOUR_DATE_PATTERN");
    Date date = sdf.parse(string);

    Los patrones de uso de acuerdo a https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

  2. 3

    Si he entendido correctamente la pregunta 2014-09-01 10:00:00.000 está en una cadena y 10:00:00 tiene que ser extraído de que. Dado a continuación es mi solución.

    • Primera división de la cadena con el espacio como delimitador.
    • Luego de que se tome la segunda parte de la cadena.
    • Después de que partió la cadena de nuevo el uso de . como delimitador y tome la primera a la picadura de que.

    La anterior de hacer las cosas de la utilización de la línea.

    str.split("\\s")[1].split("\\.")[0];

    CÓDIGO COMPLETO

    String str = new String("2014-09-01 10:00:00.000");
    String time = str.split("\\s")[1].split("\\.")[0];
    System.out.print(time);

    SALIDA

    10:00:00

    Para más detalles revise los vínculos de abajo:

    • No tengo que pasar la fecha y la hora como es, pero tiene que pasar un array de strings que tiene mi columna de valores.cómo hacerlo.He editado mi pregunta.¿Cómo puedo pasar de atime, que es la matriz de cadena con los valores de mi columna.Por otra parte lo que es str1 en tu línea de código.
    • cómo dividir una matriz de tipo string que contiene una combinación de fecha y hora en la parte del tiempo solo.Hay alguna forma de hacerlo.
    • En qué forma es su matriz puede dar un ejemplo
    • mi matriz atime es de tipo cadena (string) que contiene alrededor de 3600 valores de la forma 2014-09-01 10:00:00.000
  3. 2

    Consulte oficial de Java docs aquí

        import java.text.DateFormat;
        import java.text.SimpleDateFormat;
        import java.util.Date;
    
    
        public class MyDate {
    
            public static void main(String[] args){
                DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss a");
                Date date = new Date();
                String time=dateFormat.format(date);
                System.out.println(time);
    
            }
    
        }
  4. 0

    Lo tengo,sólo tiene que utilizar substring() como

     while(rs.next()) {
                //Just get the value of the column, and add it to the list
                timeStr.add(rs.getString(1).substring(11,16));
    
            }

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea