我遇到了一些Java web服务的问题,我已经在我的简单outlook添加中使用了我正在尝试与第三方API集成。问题是.Net日期和Java日期之间的区别,我会说实话,我不再了解Java了。我的问题是API期望格式yyyyMMddHHmmss
的日期很好,但是当我尝试使用类似DateTime.ParseExact的东西创建时,我收到一条错误,指出“字符串未被识别为有效的DateTime “。我不确定谷歌的这些选择在这次没有真正帮助过我。
答案 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);
使用子字符串解析手动字符串有点可笑,但它在技术上有效。 希望它有所帮助!