4

私は、このトピックに関するほぼすべてのブログ投稿を読んで手に入れることができましたが、喜びを得ることはできませんでした.

オーストラリアのパースにあるサーバーでサイトを実行しています (共有ホスティングのため、サーバー時間はパース時間に設定されています)。しかし、すべての活動をオーストラリアのメルボルンのタイムゾーンで記録する必要があります。たとえば、レコードがデータベースに書き込まれる場合、パースではなくメルボルンで発生した時刻を記録したいと考えています (たとえば、フォーラムのトピックが投稿されたなど)。メルボルンには夏時間がありますが、パースにはありません。さらに、私はこれに取り組んでいる間に、それが実行されているサーバーのタイムゾーンに関係なく、現在のメルボルン (またはどこでも) の時間を提供できるアプローチを考え出すこともできます。

このタスクは、私が予想していたよりもはるかに大きな課題になりました。

私が来たのはこれです:

    timezoneClass = createObject( "java", "java.util.TimeZone" );
    melbourneTimezone = timezoneClass.getTimeZone(javaCast( "string", "Australia/Melbourne" ));
    melbourneCalendar = createObject( "java", "java.util.GregorianCalendar" ).init(melbourneTimezone);
    melbourneTime = melbourneCalendar.getTime();

    writeDump(melbourneTime);

..そして、私が知る限り、これで必要なものが得られるはずですが、そうではありません..「melbourneTime」をダンプすると、サーバー時間だけが得られます。

誰でも私に何か指針を与えることができますか?私は正しい道を進んでいますか、それとも望ましい結果を達成するためのはるかに簡単な方法ですか.

どうもありがとう

ジェイソン

4

1 に答える 1

5

rip747 / TimeZone-CFCを使用する場合は、以下のコードを使用して簡単に答えを見つけることができます。

timezoneObj = createObject("component", "timezone").init();
melbourneTime = timezoneObj.castFromServer(now(), "Australia/Melbourne");

writeDump(melbourneTime);
于 2013-10-30T10:54:58.000 に答える