从.Net发送DateTime到Java Web服务
问题描述:
我在使用Java Web服务时遇到了一些问题,因为我已经使用了简单的Outlook添加,因此我试图与此第三方API进行集成。问题是.Net日期和Java之间的区别,我会诚实地说我对Java不再了解太多。我的问题是,API预计格式为yyyyMMddHHmmss
这是很好的日期,但是当我尝试创建使用类似DateTime.ParseExact的东西时,我收到一个错误,指出“字符串未被识别为有效的DateTime”。我不确定我的选择我们的谷歌这次没有真正帮助我。从.Net发送DateTime到Java Web服务
答
在.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);
手工串子解析有点hoakey,但它在技术上的作品。 希望它有帮助!
答
我认为是做得不对,我不是使用解析确切之前格式的正确格式的日期:
如果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侧的解析,从.NET侧进行格式化,还是在Java侧进行格式化?请给出一个示例字符串和你试过的代码。 – 2010-07-09 15:19:24
你是否捕获到导致失败的字符串,看看它的实际外观?无论格式如何,ParseExact都可以正常工作。 – Toby 2010-07-09 15:19:49
你可以发布你的解析代码吗? – Oded 2010-07-09 15:20:22