【问题标题】:Flex - Date serializationFlex - 日期序列化
【发布时间】:2011-04-03 09:32:52
【问题描述】:

有谁知道如何让 actionscript 呈现一个空日期值“000:00:00T00:00:00”?我正在调用一个需要 SOAP xml 中的日期字段的 Web 服务。我需要将其中一些日期序列化为 null,但我看不到如何生成 null。我能得到的最接近的值是'1899-11-30T00:00:00Z'。以下是我正在使用的代码:

var dateStr:String = "0000-00-00T00:00:00+"; var emptyDate:Date = DateUtil.parseW3CDTF(dateStr); newReqData.DateTimeInit = emptyDate;

【问题讨论】:

  • 什么是 DateTimeInit 的类型?除了传递一个日期(很难设置为 0000 ...)之外,没有其他方法来初始化吗
  • 类型为日期。我遇到的问题不在于格式,而在于序列化。我希望 SOAP 调用呈现通用 NULL 日期,我相信它是“0000-00-00T00:00:00”。我对这个 Web 服务调用的 .Net 实现在 XML 帖子中呈现了这个值。 Flex 实现没有。它呈现“1899-11-30T00:00:00Z”。所以最终结果是我在数据库中得到了一个不可取的日期'11/30/1899'。通过 .Net 实现,我在数据库中得到了一个不错的 NULL。

标签: apache-flex actionscript-3 flex4


【解决方案1】:

您可能可以使用日期格式化程序来完成。您必须创建一个 Date 对象,但如果将它传递给 DateFormatter,您可以将格式设置为几乎任何您喜欢的格式。这是参考,我建议您查看“其他文本”区域:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html

【讨论】:

  • 我遇到的问题不在于格式,而在于序列化。我希望 SOAP 调用呈现通用 NULL 日期,我相信它是“0000-00-00T00:00:00”。我对这个 Web 服务调用的 .Net 实现在 XML 帖子中呈现了这个值。 Flex 实现没有。它呈现“1899-11-30T00:00:00Z”。所以最终结果是我在数据库中得到了一个不可取的日期'11/30/1899'。通过 .Net 实现,我在数据库中得到了一个不错的 NULL。
  • 我在使用 .Net 之前遇到过日期类型转换问题。其中许多实际上来自每个系统(.Net 和 Flex)用作基础的开始日期。我从来没有真正遇到过传递 NULL 日期对象的需要(并且无法真正想到我需要如何/为什么需要)。如果您的 .Net 将 NULL 值插入到数据库中,则可能将其作为 NULL 从 Flex 传递不是最好的方法。要么,要么您可以检查 1899 值并简单地在服务器端处理它。
  • 您也可以尝试从 Flex 传递一个字符串并将其解析到日期服务器端。只是出于好奇,如果 Flex 的值为 NULL,你为什么要传递它?
  • 我正在调用由商业产品提供的 Web 服务,因此我无法控制在服务器端对其进行更改。我无法控制的 WSDL 需要一个“日期”类型,所以我不能给它传递一个字符串。 (尝试过) WSDL 公开了我正在填充并作为服务方法中的参数返回的数据结构。数据结构有很多日期字段。 (大约 15 个)在调用此相同 Web 服务的我的 .Net 项目中,我不填充日期字段,并且 SOAP xml 呈现我之前逃避的这个 NULL 日期值。并且 NULL 结果在数据库中。 Flex 强制我填写日期。
  • 我完全理解,这是一个艰难的立场。你看过 WebOrb.net 吗?我还没有深入研究它,但那里可能有一些可以提供帮助的东西。不幸的是,Flex 中的 Date 基类是 final 的,所以你不能扩展它。我尝试了几种方法,就像你一样,我只能回到 1899 年。我会继续挖掘,但我对这个一无所知。
【解决方案2】:

var d:Date=new Date(); d.setTime(-62167226400000); Alert.show(d.toString());

或者如 Shawn Yale 所说,阅读this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-22
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2011-12-02
    • 2016-08-09
    相关资源
    最近更新 更多