将DateTime从.Net发送到Java Web Service

时间:2010-07-09 15:17:09

标签: c# java .net web-services

我遇到了一些Java web服务的问题,我已经在我的简单outlook添加中使用了我正在尝试与第三方API集成。问题是.Net日期和Java日期之间的区别,我会说实话,我不再了解Java了。我的问题是API期望格式yyyyMMddHHmmss的日期很好,但是当我尝试使用类似DateTime.ParseExact的东西创建时,我收到一条错误,指出“字符串未被识别为有效的DateTime “。我不确定谷歌的这些选择在这次没有真正帮助过我。

2 个答案:

答案 0 :(得分:0)

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

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

不确定它是否会返回数据,但至少它没有错误

答案 1 :(得分:-3)

在.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);

使用子字符串解析手动字符串有点可笑,但它在技术上有效。 希望它有所帮助!