4
getClients(LoginInfo user, long sysId, java.lang.String accNum, java.lang.String ClientNum, java.util.Calendar fromTime, java.util.Calendar toTime, boolean showDeactivated, boolean showDetails).

以上是我从 C# 代码调用的 java webservice 方法。

我使用以下值传递 fromTime 和 ToTime 参数

 DateTime from = new DateTime(2012, 3, 1, 1, 1, 1, DateTimeKind.Unspecified);
 DateTime to = new DateTime(2012, 4, 1, 1, 1, 1, DateTimeKind.Unspecified);

发现错误date string can not be less than 19 charactors

编辑_ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ *以下是代理中的方法*

getClients([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] 
LoginInfo user, long sysId, [System.Xml.Serialization.XmlIgnoreAttribute()] bool sysdSpecified, 
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string accNum, 
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] 
string ClientNum, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] 
System.Nullable<System.DateTime> fromTime, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] 
[System.Xml.Serialization.XmlIgnoreAttribute()] bool fromTimeSpecified,
 [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] System.Nullable<System.DateTime> toTime,
 [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] 
[System.Xml.Serialization.XmlIgnoreAttribute()] 
bool toTimeSpecified, 
bool showDeactivated, [System.Xml.Serialization.XmlIgnoreAttribute()]
 bool showDeactivatedSpecified, bool showDetails, 
[System.Xml.Serialization.XmlIgnoreAttribute()] bool showDetailsSpecified) {
}
4

3 回答 3

2

为什么不将值转换为长整数?例如:从 1990 年 1 月 1 日开始的分钟数。

于 2012-04-30T16:14:53.190 回答
2

从 C# 发送为:

private static readonly DateTime Jan1st1970 = new DateTime
    (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

public static long CurrentTimeMillis()
{
    return (long) (DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
}

在 Java 中接收为:

new Date(longValueFromAbove);

于 2013-07-26T23:37:43.383 回答
0

您是否尝试过使用 DateTimeKind.UTC?

当您使用 DateTimeKind.Unspecified 时,该字符串可能缺少时区说明符。

编辑:好的,DateTime 不以任何方式提供时区,但 DateTimeOffset 提供。尝试这个:

  new DateTimeOffset(yourDateTime)
于 2012-04-30T19:05:03.433 回答