任何文化的日期时间

时间:2012-11-16 12:50:17

标签: c# datetime cultureinfo

我正在尝试将DateTime对象传递给我的webservice。系统一直告诉我有一个SqlDateOverflow错误。我已经尝试将对象转换为字符串,但同样的错误仍然存​​在。

如何从使用特定区域性的系统传递DateTime对象,而webservice所在的服务器使用不同的区域性?有没有办法标准化对象,以便任何系统,无论其文化,可以将对象解析为其DateTime等价物?

我尝试过使用DateTime.Parse方法,DateTime.TryParse方法,甚至是DateTime.ParseExact方法,但所有方法都会导致'SqlDateOverflow'。

3 个答案:

答案 0 :(得分:0)

我总是将日期作为字符串以ISO8601格式

传递

请参阅 Convert dateTime to ISO format yyyy-mm-dd hh:mm:ss in C#

答案 1 :(得分:0)

要避免此问题,您可以修改您在Web服务中调用的SQL脚本/过程,在开头添加:

SET DATEFORMAT dmy; -- day/month/year

SET DATEFORMAT mdy; -- month/day/year

这样,如果将其作为正确格式化的字符串传递,则SQL引擎将始终正确对待它。

答案 2 :(得分:0)

如果您没有更多详细信息,那么这可能有助于解决您的问题

DateTime.Parse(yourDateTimeString,CultureInfo.InvariantCulture)