6
votes

Comment afficher uniquement la partie temporelle de la combinaison horaire de date en Java

Je suis nouveau à Java. Je récupère ma première colonne de la base de données dans une matrice de chaîne qui représente des données telles que: xxx pré>

maintenant, je veux afficher uniquement de l'heure comme: p> xxx pré> Comment faire? Mon code pour récupérer ma colonne est: p>

p>

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;


}


2 commentaires

Dupliqué possible de String Java à ce jour Conversion


Veuillez rechercher Stackoverflow avant de poster. Les sujets de votre question ont été abordés dans des centaines de questions et réponses. Conseils: (1) Lors de la sérialisation d'une valeur de date-heure sur une chaîne, utilisez le format Standard ISO 8601. (2) Pour une base de données, utilisez un type de données de date plutôt que des chaînes. Probablement horodatage avec le fuseau horaire. Des bases de données telles que Postgres prennent en charge un tableau de telles valeurs.


4 Réponses :


8
votes

Utilisez SimpleDateDormat : xxx

Si vous avez la date à une chaîne, vous pouvez l'analyser à une java.Util.Date dans une étape précédente: < / p> xxx

motifs d'utilisation selon https://docs.oracle.com/javase/7/docs/api/java/text/simpledeformat.html


0 commentaires

2
votes

Reportez-vous Documents Java officiels ici

    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);

        }

    }


0 commentaires

4
votes

Si j'ai compris la question correctement 2014-09-01 10: 00: 00.000 est dans une chaîne et 10:00:00 doit être extrait de celui-ci . Donné ci-dessous est ma solution.

  • First Split la chaîne avec de l'espace comme délimiteur.
  • Puis de cela, prenez la deuxième partie de la chaîne.
  • Après cela, la chaîne à nouveau à l'aide de . comme délimiteur et prenez la première piqûre de celle-ci.

    Les choses ci-dessus sont effectuées à l'aide de la ligne. xxx

    code complet xxx

    sortie < / h2> xxx

    Pour plus de détails, vérifiez les liens indiqués ci-dessous:


4 commentaires

Je n'ai pas à passer la date et l'heure comme ça, mais je dois transmettre une matrice de chaîne qui contient mes valeurs de colonne.Comment faire cela.J'ai édité ma question.Comment puis-je passer ATime qui est une matrice de chaîne avec des valeurs de mon colonne.morever Qu'est-ce que STR1 dans votre ligne de code.


Comment scinder un tableau de type de chaîne qui contient une combinaison de date et d'heure dans la partie temporelle uniquement. Certains moyens de le faire.


@Sry_java dans quelle forme est votre matrice pouvez-vous donner un exemple


Mon tableau ATime est de type de chaîne qui détient environ 3600 valeurs du formulaire 2014-09-01 10: 00.000



0
votes

Je l'ai eu, utilisez simplement la sous-chaîne () comme xxx


0 commentaires