我的网站托管在不同位置的多台服务器上
到处数据格式的文化都不尽相同- 我们mm/dd/yyyy在每个地方都使用格式,但如果某些服务器设置了文化,dd/mm/yyyy则我们的网站将生成Datetime异常。
mm/dd/yyyy
dd/mm/yyyy
您应该在将字符串转换为日期时指定要使用的区域性。
您应该使用的区域性取决于日期格式的区域性。例如,如果您要解析的所有日期都被格式化为 Slovak :
String s = "24. 10. 2011";
然后,您需要像在 斯洛伐克(Slovakia) (sk-SK)文化中那样对字符串进行解析:
sk-SK
//Bad: d = DateTime.Parse(s); //Good: d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("sk-SK")); //Slovak (Slovakia)
如果您的日期都在 塔吉克斯坦(塔吉克斯坦西里尔文)中 ,则需要将其解析为tg-Cryl-Tj:
tg-Cryl-Tj
String s = "24.10.11" DateTime d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("tg-Cryl-Tj"));
这就引出了一个问题:您使用哪种日期格式?您不应依赖服务器的语言环境设置,而应确定所需的格式。
//Bad String s = d.ToString(); //Good String s = d.ToString(CultureInfo.CreateSpecificCulture("si-LK")); //Sinhala (Sri Lanka)