如何将日期时间变量从 C# 代码传递到 java Web 服务

本文关键字:java 服务 Web 代码 日期 时间 变量 | 更新日期: 2023-09-27 18:32:54

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 网络服务方法。

我正在传递具有以下值的 Time和 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

Edit______*以下是代理中的方法*

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) {
}

如何将日期时间变量从 C# 代码传递到 java Web 服务

为什么不将值转换为长整型?例如:从 01/01/1990 开始的分钟数。

从 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);

你试过使用 DateTimeKind.UTC 吗?

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

编辑:好的,DateTime没有以任何方式提供时区,但DateTimeOffset这样做。试试这个:

  new DateTimeOffset(yourDateTime)