私は、サーバー側では、Windows Server 2008上で動作するColdFusion 8とjavascript(Google Chromeでのテスト)を使用するクライアント側を使用して、エポックタイムを取得する必要があるアプリケーションを作成しています。問題は、ColdFusionによって生成されるエポック時間が、JavaScriptによって生成される時間より1時間遅れていることです。日付/時刻の設定がクライアント側とサーバー側の両方で正しいことを確認しました。なぜColdFusionエポック時間は、JavaScriptエポック時間より1時間遅れていますか?
これは私がColdFusionにタイムスタンプを設定しています方法です:
<cfset cfEpoch = DateDiff("s", "January 1 1970 00:00", DateConvert("Local2utc", now()))>
そして、これは私がJavaScriptでそれを設定しています方法です:
var jsEpoch = Math.round(new Date().getTime()/1000.0);
javascriptのエポックは、この上のいずれかと一致ウェブサイト(http://www.epochconverter.com/)は私が使っているのと同じ方法を使っているので意味があります。 ColdFusionのエポックは1時間遅れています。ここで私はこれを整理しようとする実行してきたものだ:
<cfset localDate = now()>
<cfset utcDate = DateConvert("Local2utc", localDate)>
<cfset epoch = DateDiff("s", "January 1 1970 00:00", utcDate)>
<cfoutput>
Local Date: #localDate# <br>
UTC Date: #utcDate# <br>
Epoch: #epoch#
</cfoutput>
そのコード出力:
Local Date: {ts '2013-04-30 17:44:56'}
UTC Date: {ts '2013-04-30 21:44:56'}
Epoch: 1367354696
は、だから私は途方に暮れてよ。ローカル日付とUTC日付の両方の値が正しいです。唯一の説明は、DateDiff()関数が正しく動作していないということですが、他の日付でテストしてもうまくいくようです。私はそれが生成する時代の値に3600を加えることができると思うが、なぜ私が最初に間違った価値を得ているのかを知らなければ、むしろそれをしないだろう。誰かが私がここで行方不明を見ますか?
あなたのJVMのバージョンは何ですか?そして、あなたは何のTZですか? –