Mur*_*aza 7 c# sql asp.net datetime-format
我的网站托管在不同位置的多台服务器上
数据格式的文化到处都是不同的 - 我们mm/dd/yyyy在每个地方使用格式,但是如果某些服务器具有文化集,dd/mm/yyyy那么我们的网站会生成日期时间异常.
Ian*_*oyd 12
您应该在将字符串转换为日期时指定要使用的文化.
您应该使用的文化取决于日期格式化的文化.例如,如果您要解析的所有日期都格式化为斯洛伐克语:
String s = "24. 10. 2011";
Run Code Online (Sandbox Code Playgroud)
然后你需要解析字符串,就像在斯洛伐克(斯洛伐克)(sk-SK)文化中一样:
//Bad:
d = DateTime.Parse(s);
//Good:
d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("sk-SK")); //Slovak (Slovakia)
Run Code Online (Sandbox Code Playgroud)
如果您的日期都在Tajik(塔吉克斯坦西里尔文),那么您需要将其解析为tg-Cryl-Tj:
String s = "24.10.11"
DateTime d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("tg-Cryl-Tj"));
Run Code Online (Sandbox Code Playgroud)
这导致了一个问题:您使用的日期格式是什么?您不应该依赖服务器的区域设置,您应该决定您想要的格式.
//Bad
String s = d.ToString();
//Good
String s = d.ToString(CultureInfo.CreateSpecificCulture("si-LK")); //Sinhala (Sri Lanka)
//s = "2011-10-24 12:00:00 ??.?."
Run Code Online (Sandbox Code Playgroud)
我怀疑你更喜欢用英语做所有事情.但是你必须决定哪种英语变体:
en-AU (英语澳大利亚): 24/10/2011en-IA (英文印度): 24-10-2011en-ZA (英语南非): 2011/10/24en-US (英语(美国): 10/24/2011我怀疑你更喜欢英语(印度)(en-IA).
但是,如果你真的无法决定在将日期转换为字符串时使用什么文化,反之亦然,并且日期永远不会向用户显示,那么你可以使用不变文化:
String s = "10/24/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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11994 次 |
| 最近记录: |