[英]Problem in Datetime conversion in c#
在將C#中值為dd.mm.yyyy
的字符串轉換為DateTime
遇到問題
string OriginalDateFormat = "28.06.2009";
DateTime dt= Convert.ToDateTime(OriginalDateFormat);
引發異常"String was not recognized as a valid DateTime."
但是,如果它在mm.dd.yyyy
,則運行正常。
我在Google上搜索了很多網站,但都無濟於事
任何想法?
提前致謝。
使用DateTime.ParseExact
並指定確切的格式字符串:
DateTime dt = DateTime.ParseExact("28.06.2009", "dd'.'MM'.'yyyy",
CultureInfo.InvariantCulture);
如果這是來自用戶輸入的值,則可能要使用DateTime.TryParseExact,以便可以正常處理失敗:
DateTime dt;
if (DateTime.TryParseExact("28.06.2009", "dd'.'MM'.'yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None, // Default formatting options
out dt))
{
Console.WriteLine("Successfully parsed {0}", dt);
}
else
{
Console.WriteLine("Did not recognise date");
}
我認為這與文化有關...您指定的格式是(我認為)GB,默認文化是美國。 您還需要指定文化。
而是嘗試以下方法:
IFormatProvider culture = new CultureInfo("en-US", true);//en-Us or en-GB not sure
DateTime dt = DateTime.Parse(p, culture, DateTimeStyles.AssumeLocal);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.