我是Intersystems Cache
的新用户,并且从我通过%Timestamp
应用程序调用的Web服务返回.NET
属性时出现以下错误:
[System.FormatException] = {"The string '2012-11-22T20:00Z' is not a valid AllXsd value."}
有人知道如何在返回之前将%Timestamp
属性重新格式化为欧洲日期/时间格式吗?
谢谢,
0
答案 0 :(得分:0)
执行此操作的代码可在LogicalToXSD
类的%Library.TimeStamp
类方法中找到。查看代码,它不打算支持不同的日期/时间格式。
您可以将属性从数据类型TimeStamp
更改为数据类型EuropeanTimeStamp
,这是您创建为%Library.TimeStamp
的子类的类。然后,您可以覆盖LogicalToXSD
和XSDToLogical
方法。
显然,您使用的格式是Web服务的所有消费者将获得的格式。
您也可以在.NET
方面处理此问题。如果您可以告诉使用Web服务的任何内容,有问题的属性是字符串,那么您可以稍后将其转换为日期/时间。
答案 1 :(得分:0)
看起来你正在使用SOAP? 如果有,请查看LogicalToXSD(..)方法。 (并考虑参数XMLTIMEZONE)。
如果您只需要转换实际值$ZTS is your friend