我正在开发 Flex 3 应用程序,我想知道如何在 actionscript3 中创建代表特定时区的 Date 对象?我的应用程序在国际上使用,我想为整个应用程序创建标准时区,根据研究我发现我无法创建基于特定时区的日期对象。对此有什么建议吗? 仅供引用,所有业务逻辑都驻留在服务器上的 Java 上,对于前端,我们使用 flex。
更新:
我从服务器到 flex 的时间为“Fri Sep 28 05:16:37 EDT 2012”,但是当我在 new Date() 中实例化时,它抛出无效日期错误。所以我将其更正为“Fri Sep 28 05:16:37 GMT -0400 2012”并使用 new Date() 实例化,但我在 IST 中得到的结果,因此时区信息丢失。如何在 flex 中保留时区?
最佳答案
假设您想要将内容存储为 UTC...
在你的服务器中你可以设置JVM参数
-Duser.timezone=UTC
这将强制服务器以 UTC 运行,而不管计算机的时区如何。
然后,当您将对象从 flex 传递回 java 时,您将必须更新日期对象。有点像
var utcDate:Date = new Date(d.valueOf() - (d.timezoneOffset * MS_OF_ONE_MIN));
其中 d 是您来自 flex 的日期,并且具有运行 Flex 的 PC 的时区。
如果您使用的是 BlazeDS 之类的东西,那么您可以调用一个函数来转换 RemoteObject 中的所有日期。因为那是您进行序列化的对象。
您遇到的最大问题是 flex Date 对象上没有 setTimezone,这意味着您必须跳过所有这些步骤才能获得 UTC 日期。
关于java - 如何在具有特定时区的 ActionScript 中创建日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634390/