Coldfusion / Java - 获取与服务器不同的时区当前时间

时间:2013-10-30 09:26:39

标签: java coldfusion

我已经阅读了关于这个主题的每一篇博文,我可以得到我的动手,但只是没有快乐。

我在澳大利亚珀斯的服务器上运行了一个站点(共享主机,因此服务器时间设置为珀斯时间)。但我需要在澳大利亚墨尔本时区记录所有活动。例如,如果将记录写入数据库,我想记录在墨尔本发生的时间,而不是珀斯(例如发布的论坛主题)。我不能直接做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'时,它只给我服务器时间。

任何人都可以给我任何指示。我是在正确的道路上,还是一种更简单的方法来实现预期的结果。

非常感谢

杰森

1 个答案:

答案 0 :(得分:5)

如果您使用rip747 / TimeZone-CFC,则可以使用以下代码轻松找到答案:

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

writeDump(melbourneTime);