簡體   English   中英

C#中的Datetime轉換問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM