4

我已经阅读了几乎所有关于这个主题的博客文章,我可以得到我的手,但只是没有得到快乐。

我在澳大利亚珀斯的服务器上运行了一个站点(共享主机,因此服务器时间设置为珀斯时间)。但我需要在澳大利亚墨尔本时区记录所有活动。例如,如果将一条记录写入数据库,我想记录发生在墨尔本的时间,而不是珀斯(例如论坛主题发布)。我不能直接做 DateDiff,因为墨尔本有夏令时,而珀斯没有。另外,我想在此期间,我不妨想出一种方法,该方法可以为我提供当前墨尔本(或任何地方)的时间,而不管它运行的服务器的时区如何。

这项任务已经变成了比我预期的要大得多的挑战。

我得到的是这样的:

    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 回答