java.util.Date の使用
zzKozakの答えは正しいです。うーん、ほぼ正解。サンプル コードでは、必要な例外処理が省略されています。このように…</p>
java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String string = "2013-06-09 14:20:00";
Date date = null;
try {
date = dateFormat.parse(string);
} catch ( ParseException e ) {
e.printStackTrace();
}
System.out.println("date: " + dateFormat.format(date));
java.util.Date を使用しないでください。
Java にバンドルされている java.util.Date および Calendar クラスの使用は避けてください。それらは、設計と実装の両方で悪名高いです。
代わりに、有能な日時ライブラリを使用してください。Java では、次のいずれかを意味します。
タイムゾーン
あなたの質問とコードは、タイムゾーンの問題に対処できません。タイムゾーンを無視すると、デフォルトになります。これにより、本番環境にデプロイしたときに予期しない動作が発生する可能性があります。常にタイムゾーンを指定することをお勧めします。
フォーマッタ
標準のISO 8601形式に従ってスペースを「T」に置き換えると、その文字列を Joda-Time DateTimeインスタンスのコンストラクターに直接渡すことができます。
その文字列をそのまま使用する必要がある場合は、フォーマッタを定義してその形式を指定します。StackOverflow.com では、その多くの例を見つけることができます。
サンプルコード
Java 7 で実行されている Joda-Time 2.3 を使用したサンプル コードを次に示します。
私は勝手にモントリオールのタイムゾーンを選びました。
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;
// Specify a time zone rather than rely on default.
// Necessary to handle Daylight Saving Time (DST) and other anomalies.
DateTimeZone timeZone = DateTimeZone.forID( "America/Montreal" );
DateTime dateTime = new DateTime( "2013-06-09T14:20:00", timeZone ); // Or pass DateTimeZone.UTC as time zone for UTC/GMT.
System.out.println( "dateTime: " + dateTime );
実行すると…</p>
dateTime: 2013-06-09T14:20:00.000-04:00