2011-10-20 9 views
0

私は以下のコードを使用して、文字列をGMT-> EDTに解析しています。私は私が見ている結果を理解していない。予期しない結果がJavaでGMT解析されました

 SimpleDateFormat dformat = new SimpleDateFormat("yyyyMMdd-hh:mm:ss"); 
     TimeZone gmt = TimeZone.getTimeZone("GMT"); 
     dformat.setTimeZone(gmt); 
     Date d = dformat.parse(time); 

時間= "20111019から13:00:00" の場合、dはしかし、水10月19日9時00分00秒EDT 2011年なってしまう、時間なら= "20111019から12:59:59" 、どういうわけか、Tue Oct 18 20:59:59 EDT 2011が終了します。これはどのようにすることができますか?

答えて

1

ではなく、時間コンポーネントの意味はHH:mm:ssです。 12時間制を使用し、12:59:59を効果的に00:59:59と解釈していました。あなたの構文解析はないを行い

注は、特定のタイムゾーンに変換を実行する - Dateは、タイムゾーンについて知られていないため。 (私が思う)d.toString()を印刷しているので、あなたはEDTしか見ることができません。常にローカルタイムゾーンを使用しています。あなたはおそらく、私は強くあなたがタイムゾーンを持っていないDateTimeを使用する場合は、代わりにJoda Timeに移動するためにあなたをお勧めすることができれば...とすることができます -

/時間のAPIは、Javaの日付はかなりひどいですあなたはそれらの間で変換する。

+0

申し訳ありませんが、私が実際に転記したコードは、私が投稿したセクションに問題があることに気がついたときに省略されました。理にかなって、ありがとう!私も日付機能のファンではありませんが、これは私の唯一の選択肢です。 – Sarah

関連する問題