【问题标题】:Flex Date issue with Timezone时区的弹性日期问题
【发布时间】:2010-09-10 15:55:25
【问题描述】:

我们有一个需要按日期搜索的搜索工具:

所以我在搜索字段中输入日期“04-20-1982”。在代码中:

Alert.show("string date::"+message.searchKeyword);

dateOfBirth = DateField.stringToDate(message.searchKeyword,"MM-DD-YYYY");

Alert.show("date::"+dateOfBirth);

第一个警报打印为字符串 date::04-20-1982

第二个警报打印为 date::Tue Apr 20 00:00:00 GMT-0400 1982

问题是我们的时区是美国东部标准时间,并且由于将其更改为格林威治标准时间 -400,因此时间为 1982 年 4 月 19 日星期一 23:00:00 EST 并且不返回任何结果。数据库中的实际出生日期是 1982 年 4 月 20 日。

所以请告诉我如何避免这种转换为 GMT -400 时区,只需将其作为没有任何时区的日期发送。

谢谢

哈里什

【问题讨论】:

  • 另一个奇怪的事情是有一个 DOB 04-10-2010 的患者(虚拟数据),并且在这个日期之前的搜索正确返回了结果!!!

标签: apache-flex date timezone


【解决方案1】:

日期作为 UTC 日期传入/传出 Flex 客户端 - 没有可用的时区信息。转换到 UTC/本地时间会在协议级别自动发生。

您可以使用这样的方法来获取偏移量并手动计算日期:

 var dNow:Date = new Date();
        trace("Your time zone offset: " + dNow.getTimezoneOffset() + " minutes");

【讨论】:

  • 感谢您的回复,托德。我以分钟为单位得到了时区偏移量,并将这些分钟添加到日期中,瞧,我得到了正确的结果。不确定这是否是正确的解决方案,但它对我有用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 2016-12-14
  • 2015-05-24
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多