2017-04-26 2 views
-1

私はこのような文字列を持っています210115私は21:01:15として表現したいですか? 私はグレゴリオ暦を使用してみましたが、それは時間文字列と時刻表現Java

SimpleDateFormat sdf = new SimpleDateFormat("HHmmss"); 
Date date = new Date(); 
try{ 
date = sdf.parse("210115"); 
} 
catch(Exception e){ 
} 

Calendar calendar = GregorianCalendar.getInstance(); 
calendar.setTime(date); 
System.out.print(calendar.getTime()); 

出力がThu Jan 01 21:01:15 UTC 1970ですが、私がしたいことがちょうど21:01:15

おかげで、私はしたくない、それに日付を追加します。

+2

Dateオブジェクトとして日付がありません – Jens

+0

文字列が必要な場合は、なぜ日付に変換するのも問題ですか? 次のようにします。 String s = "210115"; 文字列出力= s.substring(0,2)+ ":" + s.substring(2,2)+ ":" + s.substring(4,2); –

+0

[Java文字列の日付形式を変更する]の複製があります(http://stackoverflow.com/questions/4772425/change-date-format-in-a-java-string) –

答えて

2

フォーマットされた日付を出力するには、別のSimpleDateFormatオブジェクトを使用し、必要な形式のパターンを持つオブジェクトを使用します。あなたは

 
SimpleDateFormat outputFormat = new SimpleDateFormat("HH:mm:ss"); 
System.out.println(outputFormat.format(date)); 

2

のようなものを使用することがありますようにこの場合

は、それはあなたが望むものは、タイムゾーンなしで、ちょうど時間で鳴ります。 Dateクラスの代わりに LocalTimeクラスを使用することをお勧めします。

LocalTime time = LocalTime.parse("210115", DateTimeFormatter.ofPattern("HHmmss")); 
+0

私はちょうどこれについて自分自身に答えようとしていました。また、 'toString()'実装は_HH:mm:ss_出力を保証するようです。 – Magnilex

+0

@Magnilexはいそうです。 – assylias

0

uが「」この形式の日付文字列を取得rは、あなたはなぜあなたは日付形式を使用しているし、「21時01分15秒」の形式でそれをしたい場合。あなたが必要な形式を取得します

String time="210115"; 
     String newtime=time.substring(0,2)+":"+time.substring(2,4)+":"+time.substring(4,6); 
     System.out.println(newtime); 

: は、単に文字列操作を行います。 21:01:15

関連する問題