在此site
中这很奇怪。
DateTime a = DateTime.Parse("5/26/2011");
Response.Write(a.ToShortDateString());
localhost中的这段代码工作正常。
但是,但是
主持人说错误:
字符串未被识别为有效的DateTime。
在此site
中答案 0 :(得分:4)
您需要使用DateTime.ParseExact()
,它可以指定您的文化和格式。
以下是使用InvariantCulture的示例:
DateTime dateTime = DateTime.ParseExact("5/26/2011",
"MM/dd/yyyy",
CultureInfo.InvariantCulture);
这是一个专门使用en-US
的人:
DateTime dateTime = DateTime.ParseExact("5/26/2011",
"MM/dd/yyyy",
CultureInfo.CreateSpecificCulture("en-US"));
答案 1 :(得分:1)
这是一种文化依赖的错误。只需将正确的文化传递给parse方法:
DateTime a = DateTime.Parse("5/26/2011", CultureInfo.CreateSpecificCulture("en-US"));
答案 2 :(得分:0)
重申Yuck和Sorantis的评论:
static void Main(string[] args)
{
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
try
{
DateTime.Parse("5/26/2011", ci);
Console.WriteLine(String.Format("Able to parse with {0} CultureInfo object.", ci));
}
catch
{
Console.WriteLine(String.Format("Unable to parse with {0} CultureInfo object.", ci));
}
}
Console.ReadLine();
}