DateTime.Parse
默认使用 CurrentCulture
设置。
这意味着,您的 CurrentCulture
以 yyyy-MM-dd
作为标准日期和时间格式,但它没有 dd-MM-yyyy
格式。
在这种情况下,您可以使用 DateTime.TryParseExact
进行自定义日期和时间解析,例如;
string s = "19-10-1924";
DateTime dt;
if(DateTime.TryParseExact(s, "dd-MM-yyyy", CultureInfo.GetCultureInfo("tr-TR"),
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
由于你来自土耳其,我假定你的 CurrentCulture
是 tr-TR
(和我一样),你可以找到你文化中所有标准的日期和时间格式,例如:
foreach(var format in CultureInfo.GetCultureInfo("tr-TR").DateTimeFormat.
GetAllDateTimePatterns())
{
Console.WriteLine(format);
}
输出结果将为:
dd.MM.yyyy
dd.MM.yy
yyyy-MM-dd
dd MMMM yyyy dddd
dd MMMM yyyy
dd MMMM yyyy dddd HH:mm
dd MMMM yyyy HH:mm
dd MMMM yyyy dddd HH:mm:ss
dd MMMM yyyy HH:mm:ss
dd.MM.yyyy HH:mm
dd.MM.yy HH:mm
yyyy-MM-dd HH:mm
dd.MM.yyyy HH:mm:ss
dd.MM.yy HH:mm:ss
yyyy-MM-dd HH:mm:ss
dd MMMM
dd MMMM
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK
ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
yyyy'-'MM'-'dd'T'HH':'mm':'ss
HH:mm
HH:mm:ss
yyyy'-'MM'-'dd HH':'mm':'ss'Z'
dd MMMM yyyy dddd HH:mm:ss
dd MMMM yyyy HH:mm:ss
MMMM yyyy
MMMM yyyy
正如您从输出中看到的,
yyyy-MM-dd
是
tr-TR
文化中的标准日期和时间格式,而不是
dd-MM-yyyy
或
MM-dd-yyyy
格式。
CurrentCulture
是什么? - Soner Gönül