Java.sqlタイムスタンプを好みに合わせてフォーマットするにはどうすればよいですか? (表示用の文字列へ)
Java.sql.Timestamp
はJava.util.Date
を拡張します。できるよ:
String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);
または、時間も含めるには:
String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);
String.format(または Java.util.Formatter )を使用します。
Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)
編集:
TDおよびTTの意味を理解するには、Formatterのドキュメントを参照してください: Java.util.Formatter をクリック
最初の「T」は以下を表します:
't', 'T' date/time Prefix for date and time conversion characters.
そして、その「T」に続く文字:
'T' Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D' Date formatted as "%tm/%td/%ty".
この特定の質問に対して、Java.text.SimpleDateFormat
の標準的な提案は機能しますが、SimpleDateFormat
スレッドセーフではありませんマルチスレッドシナリオでは出力が破損し、例外が発生しないため、特に厄介な問題の原因になります。
私は強くこのようなものについては Joda を見ることをお勧めします。どうして ? Javaの現在のライブラリよりもはるかにリッチで直感的な時刻/日付ライブラリです(そして、今後の新しい標準Java日付/時刻ライブラリの基礎であるため、 「まもなく標準になるAPIを学習します)。
MySQLを使用していて、データベース自体で変換を実行する場合、これを使用します。
Javaを使用してフォーマットする場合、これを使用します。
SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );
DateFormat
を使用します。国際化されたアプリケーションでは、 getInstance
で提供される形式を使用します。形式を明示的に制御する場合は、新しい SimpleDateFormat
を自分で作成します。