我已经阅读了关于这个主题的每一篇博文,我可以得到我的动手,但只是没有快乐。
我在澳大利亚珀斯的服务器上运行了一个站点(共享主机,因此服务器时间设置为珀斯时间)。但我需要在澳大利亚墨尔本时区记录所有活动。例如,如果将记录写入数据库,我想记录在墨尔本发生的时间,而不是珀斯(例如发布的论坛主题)。我不能直接做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'时,它只给我服务器时间。
任何人都可以给我任何指示。我是在正确的道路上,还是一种更简单的方法来实现预期的结果。
非常感谢
杰森
答案 0 :(得分:5)
如果您使用rip747 / TimeZone-CFC,则可以使用以下代码轻松找到答案:
timezoneObj = createObject("component", "timezone").init();
melbourneTime = timezoneObj.castFromServer(now(), "Australia/Melbourne");
writeDump(melbourneTime);