0

Datejavaと。について疑問がありSimpleDateFormatます。

GMT形式のファイル作成時間を維持するアプリケーションがありますyearMonthDayHourMinute。現在、私は別のタイムゾーンにいます(たとえばIST)。そのため、すべての処理をこの形式で実行したいと思いGMTます。

次のスニペットは、オブジェクトに保存されている日付を取得した方法でTimeInMillisに変換します。

>        1. SimpleDateFormat valueSDF = new SimpleDateFormat("yyyyMMddHHmm");
>        2. valueSDF.setTimeZone(TimeZone.getTimeZone("GMT"));
>        3. Date date = valueSDF.parse("201212060915");
>        4. System.out.println("date.getTime():  "+ date.getTime());   // returns 1354785300000
>        5. String fileCreationTime= Long.toString((date.getTime()/1000));
>        6. System.out.println("time :: "+ fileCreationTime);   // returns 1354785300

ミリ秒単位で取得された時間の値(ステップ#4)には、追加の3つの後続ゼロがあります。私のアプリケーションに必要なのは、結果を1000で割ったものです。(ステップ#5)

date.getTime()が結果にさらに多くのゼロを追加する理由を知りたいです。スタックの専門家、あなたの提案を共有してください!

4

1 に答える 1

5

date.getTime()が結果にさらに多くのゼロを追加する理由を知りたいです。

そうではありません。Unixエポックからのミリ秒数を示します。1970年1月1日のUnixエポックであるUTCの真夜中からの秒数が必要な場合は、1000で除算する必要があります。ミリ秒が必要な場合は(主張どおり)、1000で除算しないでください。これですべてです。意図したとおりに動作しています。

3つのゼロを「加算」していると考える理由は明らかではありませんが、そうではないことは確かです。Unixエポックから1354785300ミリ秒は376時間にすぎないことに注意してください...

指定した日付(2012年12月6日、UTCでは午前9時15分)、Unixエポックから1354785300000ミリ秒です。なぜ1354785300の結果を期待するのですか?

私のアプリケーションに必要なのは、結果を1000で割ったものです

これは、ミリ秒が必要であるというあなたの主張とは相容れません。

于 2012-12-06T14:06:04.060 に答える