我的应用程序与SQL Server一起使用,它适用于具有不同文化信息的不同服务器(例如Ru-Ru,En-US等)...如何向其插入数据值?我需要将我的DateTime转换为字符串取决于服务器的文化,但是如何?
答案 0 :(得分:3)
对于culture Specific conversion
,您可以使用:
String s = "14.12.2011";
d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("Ru-Ru")); //Russia
d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("en-US")); //English United States
但是如果你真的无法决定在将日期转换为字符串时使用什么文化,反之亦然,并且日期永远不会向用户显示,那么你可以使用Invariant Culture
:< / p>
String s = "14/12/2011" //invariant culture formatted date
d = DateTime.Parse(s, CultureInfo.InvariantCulture); //parse invariant culture date
s = d.ToString(CultureInfo.InvariantCulture); //convert to invariant culture string
如果您要转换日期并将其保存为字符串,则可以使用ISO-8601 date format
即YYYYMMDD
或YYYYMMDD HH:MM:SS
,这将始终有效,无论当前选择的语言或文化设置如何SQL Server。
以下Stackoverflow
问题可能会对您有所帮助:
参考:DateTime issue when global culture of the server is different on different servers
希望这有帮助。