繁体   English   中英

从.Net发送DateTime到Java Web Service

[英]Sending DateTime from .Net to Java Web Service

我在使用Java Web服务时遇到了一些问题,我已经将其添加到我的简单Outlook中,因为我试图与该第三方API集成。 问题是.Net日期和Java日期之间的区别,老实说,我对Java不太了解。 我的问题是API期望使用yyyyMMddHHmmss格式的日期,这很好,但是当我尝试使用类似DateTime.ParseExact的方法创建日期时,我收到一条错误消息,指出“字符串未被识别为有效的DateTime。” 不太确定我这次作为Google的选择不会对我有什么帮助。

我认为做错了什么,在使用精确解析之前,我没有以正确的格式格式化日期:

string fd = new DateTime(2010, 07, 10, 01, 00, 00).ToString();
string sd = new DateTime(2010, 07, 10, 23, 59, 59).ToString();

fd = String.Format("{0:yyyyMMddHHmmss}", DateTime.Parse(fd));
sd = String.Format("{0:yyyyMMddHHmmss}", DateTime.Parse(sd));

api.searchMessage(null,
     null,
     null,
     "nosort",
     "archivedate",
     DateTime.ParseExact(fd, "yyyyMMddHHmmss", null),
     DateTime.ParseExact(sd, "yyyyMMddHHmmss", null),
     100);

不知道它是否将返回数据,但至少没有错误

在.NET方面,您应该可以执行以下操作:

// convert DateTime to string
return DateTime.Now.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture);

// convert string to DateTime
if(value.Length != 14)
    throw new ArgumentException("Value must be 14 characters.");
int year = Int32.Parse(value.Substring(0, 4));
int month = Int32.Parse(value.Substring(4,2));
int day = Int32.Parse(value.Substring(6,2));
int hour = Int32.Parse(value.Substring(8,2));
int minute = Int32.Parse(value.Substring(10,2));
int second = Int32.Parse(value.Substring(12,2));
return new DateTime(year, month, day, hour, minute, second, 0);

带有子字符串的手动字符串解析有点白费力气,但从技术上讲,它是可行的。 希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM