web-dev-qa-db-ja.com

日付文字列から時間を抽出する

"2010-07-14 09:00:02"日付文字列をフォーマットして"9:00"だけを表すにはどうすればよいですか?

49
JJunior

SimpleDateFormat を使用して、日付文字列と実際の Date オブジェクトを変換します。開始点としてDateを使用すると、SimpleDateFormatのjavadocで定義されているさまざまなパターンに基づいて書式設定を簡単に適用できます(Javadocの青いコードリンクをクリックします)。

キックオフの例は次のとおりです。

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
112
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

14
Adam

非常に簡単な方法は、 Formatterdate time conversions を参照)以上を直接使用することです String.format のように

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

あなたの最初の文字列が実際のDateオブジェクトであると仮定していますが、間違っている場合は修正してください。その場合は、SimpleDateFormatオブジェクトを使用します: http://download.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html 。書式文字列「h:mm」で処理する必要があります。

4
MikeTheReader

SimpleDateFormat を使用することにより

4
Amir Afghani

整数の日付がある場合、次のように使用できます。

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

他の答えは、質問をしたときの良い答えでした。時間が進むと、DateSimpleDateFormatはより新しくてより良いクラスに置き換えられ、使用されなくなります。 2017年には、Java.time パッケージ:

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

結果は希望通り、9:00

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