【发布时间】:2010-09-16 13:21:05
【问题描述】:
我制作了一个简单的 Web 服务,它在部署的几个系统中运行良好。现在来自 Oracle 的日期在其他系统上引起了麻烦。
一些信息:
我们自己的访问 oracle 的方法将日期作为字符串返回,格式为 15.09.2010 13:15:00 (以 4 位数字标注年份)
系统工作: -DateTime.ToSring() 产生 16.09.10 14:15:49(用于日志文件,以 2 位数字标注年份) -TryParse(string s, out DateTime result);使用字符串 15.09.2010 13:15:00 返回 true -System.Globalization.CultureInfo.CurrentUICulture.Name 的值为“en-US” 系统不工作: -DateTime.ToSring() 产生 9/16/2010 1:25:51 PM(用于日志文件) -TryParse(string s, out DateTime result);使用字符串 15.09.2010 13:15:00 返回 false -System.Globalization.CultureInfo.CurrentUICulture.Name 的值为“en-US”所以我的问题是:
- 这两个系统有什么不同?
- 使此代码通用的最佳方法是什么(我知道我可以为 DateTime.TryParse 和 DateTime.ToString() 使用格式化程序)
【问题讨论】:
-
是否有任何理由不通过 Web 服务将您的日期公开为 DateTime 或 DateTimeOffset 而不是将它们公开为字符串?
-
@alfred。传入日期是 DateTimes。 WSCF for VS2005 自动生成这些类。问题是用于数据库访问的遗留 c 代码将日期作为字符串获取。我已经使用 ADO.NET 一年多了。这是我 2 年前制作的第一个 C# WS。这就是为什么会这样。