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