0

私は以下のコードを持っており、正しい日付を取得していませんたとえば、日付は2013年1月1日12:35ですが、format.parseはdd/mm/yyyyのみを返し、hh:mmを除外しています

これはサンプル日時 03/09/2012 15:26 であり、出力は 1346649960000 を生成しています

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy hh:mm");
long data = format.parse(childNode.getTextContent()).getTime();

なぜこれが時間を奇妙にフォーマットするのかについての手がかりはありますか?

4

2 に答える 2

1

有効な出力が得られていると思います。getTime() は、1970 年 1 月 1 日 00:00:00 からのミリ秒数を返します。したがって、最後の 3 つのゼロはミリ秒を表します

于 2012-09-05T04:48:37.677 に答える
1

コードに 2 つの問題があります。

  1. 24 時間形式の時刻を解析する場合は、hh の代わりに HH を使用する必要があります。
  2. 解析に使用しているタイム ゾーンを指定することができます。タイム ゾーンの 15:26 は、別のタイム ゾーンでは別の時間に発生します。

以下の提案された修正を参照してください。

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
format.setTimeZone(TimeZone.getTimeZone("UTC"));
于 2012-09-05T04:49:04.260 に答える