web-dev-qa-db-fra.com

Extraire l'heure de la date

Comment puis-je formater la chaîne de date "2010-07-14 09:00:02" pour qu'elle représente uniquement "9:00"?

45
JJunior

Utilisez SimpleDateFormat pour convertir une chaîne de date en un objet réel Date . avec une Date comme point de départ, vous pouvez facilement appliquer une mise en forme basée sur différents modèles définis dans le javadoc de la SimpleDateFormat (cliquez sur le lien de code bleu pour la Javadoc).

Voici un exemple de coup d'envoi:

String originalString = "2010-07-14 09:00:02";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(originalString);
String newString = new SimpleDateFormat("H:mm").format(date); // 9:00
109
BalusC
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2010-07-14 09:00:02");
String time = new SimpleDateFormat("H:mm").format(date);

http://download.Oracle.com/javase/1.4.2/docs/api/Java/text/SimpleDateFormat.html

12
Adam

Une méthode très simple consiste à utiliser Formatter (voir conversions date/heure ) ou plus directement String.format as dans

String.format("%tR", new Date())
11
Petr Pudlák

Je suppose que votre première chaîne est un objet Date réel, corrigez-moi si je me trompe. Si tel est le cas, utilisez l'objet SimpleDateFormat: http://download.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html . La chaîne de format "h: mm" devrait en prendre soin.

4
MikeTheReader

En utilisant un SimpleDateFormat

4
Amir Afghani

Si vous avez la date en nombres entiers, vous pouvez utiliser comme ici: 

Date date = new Date();
date.setYear(2010);
date.setMonth(07);
date.setDate(14)
date.setHours(9);
date.setMinutes(0);
date.setSeconds(0);
String time = new SimpleDateFormat("HH:mm:ss").format(date);
3
Bohdan Kolesnyk

Les autres réponses étaient de bonnes réponses lorsque la question a été posée. Le temps passe, Date et SimpleDateFormat sont remplacés par de nouvelles et meilleures classes et deviennent inutilisables. En 2017, utilisez les classes du package Java.time:

    String timeString = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
            .format(DateTimeFormatter.ofPattern("H:mm"));

Le résultat est le 9:00 désiré.

3
Ole V.V.
let datestring = "2017-02-14 02:16:28"

let formatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.full
formatter.timeStyle = DateFormatter.Style.full

formatter.dateFormat = "yyyy-MM-dd hh:mm:ss"

let date = formatter.date(from: datestring)
let date2 = formatter.String(from: date)
0
BHAVIK PANCHAL