【问题标题】:Wrong date save when send to server发送到服务器时保存日期错误
【发布时间】:2016-04-13 11:27:56
【问题描述】:

我的弹性应用程序中有日期字段。

当我设置一个日期并作为远程服务调用发送到服务器时。它会根据时区保存错误。

假设根据我当前的时区是 4 月 12 日,我在函数参数中设置了 4 月 13 日的日期。然后它将日期设置为 4 月 12 日而不是 4 月 13 日。

<mx:DateField id="dtNewDate" selectedDate="{new Date()}" change="dtChangeHandler(event,data)" />

我已将其选定的值作为参数发送。我调试并检查它会发送正确的选定日期(4 月 13 日)。

函数是Java。我尝试了很多东西,但没有任何效果。

【问题讨论】:

    标签: actionscript-3 date apache-flex


    【解决方案1】:

    我想你使用 BlazeDS 或类似的东西。实际上,Date 被序列化并作为时间戳而不是本地 DateTime 传递给 Java 是一个特性(一个错误)。

    您有几种解决方案:

    1. 使用扩展 Externalizable 接口的自定义 DateDateTime 类。
    2. 使用包含原始字段年、月、日、小时、分钟、秒的自定义类
    3. 用户自定义序列化机制
    4. 在 setter 方法中将本地时间偏移添加到 AS3 Date,并在 getter 方法中减去该偏移。但这种方式充满了弊端。

    【讨论】:

    • 如何使用自定义日期类?当我将它作为参数发送时它是有效的?
    • 在模型(域)类中将 AS3 Date 替换为您的 CustomDate。为了与DateFiled 的互操作性,您应该将方法toDate()fromDate() 添加到CustomDate
    猜你喜欢
    • 2017-06-06
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    相关资源
    最近更新 更多