如果我将CurrentCultureInfo设置为en-us将会发生什么

时间:2009-01-09 10:04:00

标签: c# .net datetime cultureinfo

我正在使用连接到美国远程数据库的客户端应用程序。结果中出现了一些日期时间歧义,如果数据库中的日期是1月14日,则返回到1月13日。

我想知道的是如果我设置我的客户端的CurrentCultureInfo等于我的服务器将解决问题。

如果可以这样做..我想要一个相同的小例子。

3 个答案:

答案 0 :(得分:1)

您的文化用于格式化。您似乎遇到的问题是不同时区之一。

我的简单解决方案是始终以UTC格式存储日期和时间。您可以从客户端使用DateTime.UtcNow,如有必要,您可以稍后将其转换回本地时间。

答案 1 :(得分:0)

问题是美国本身有几个不同的时区,所以这不是一个解决方案。我能想到的一个解决方法是将客户端计算机的时区设置为服务器的时区,但是那些听起来不合适。

答案 2 :(得分:0)

如果您无法将存储日期更改为UTC时间,并在插入和选择数据时来回转换。然后,除非您的数据被插入服务器,否则您将不得不记录一些信息来告诉您数据的来源(我的意思是插入数据的客户端的本地时区)。

如果您的数据只是插入服务器,那么您可以使用SQL函数GetUTCDate并将其与GetDate进行比较,然后从存储在数据库中的日期时间中减去结果。然后在客户端使用DateTime.ToLocalTime()将返回的值转换为本地时间。正如我所说,这只有在数据专门插入服务器或至少由同一时区的客户端插入时才有效。否则就算了。