2012-09-01 32 views
0

我試圖轉換包含字符串格式轉換串來串類型的日期時間「12-07-2012」

private string[] ex = new string[]{ 
     "29-06-2017","29-12-2016","30-06-2016","31-12-2015","25-06-2015","24-12-2014","26-06-2014","26-12-2013"}; 

日期字符串數組,我想轉換爲十進制數組,我使用的下面的代碼,但它不工作。

public void load() 
    { 
     DateTime[] exDate=Array.ConvertAll(ex, new Converter<string, DateTime>(convertDecimal)); 
     List<DateTime> expiryDate = new List<DateTime>(); 
     expiryDate.AddRange(exDate); 
     expiryDate.Sort(); 
     _expiryDate=expiryDate; 
    } 

    public static DateTime convertDecimal(string strgDate) 
    { 
     return DateTime.Parse(strgDate); 
    } 

我得到的錯誤是:

"String was not recognized as a valid DateTime." 
+0

@MarkByers 「字符串未被識別爲有效的DateTime」 – Vishwa

回答

1

嘗試轉換是這樣的:

public static DateTime convertDecimal(string strgDate) 
{ 
    return DateTime.ParseExact(strgDate, "yyyy-MM-dd", 
        System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None)); 

} 
+0

@Adil Mammadov,非常感謝你,你很快回答,它很棒。 – Vishwa

+0

我會很高興,如果我可以幫助 –

+0

蟬,是的,我試着用空,它的工作。但是是「System.Globalization.CultureInfo.CurrentCulture」 – Vishwa

1
var dates = ex.Select(d => DateTime.ParseExact(d, "dd-MM-yyyy", CultureInfo.InvariantCulture)) 
       .ToList(); 
+0

那wroking,但放出來是有點古怪,我的前字符串爲「12-07-2012」但我正在逐漸轉換的結果12/7/2012,當月07即將爲7,雖然它是確定,但在下拉列表菜單(例如,2012年12月11日和2012年12月12日。)它看起來不統一的下拉任何解決方案?是TI可能得到結果爲12/07/2012,而不是12/7/2012 – Vishwa

+0

如果你的應用程序會去任何地方附近的另一個國家,永遠是具體的關於日期的格式,這個答案顯示,或者你是在爲受傷的世界。 – akton

+0

@Vishwa'但我正在逐漸轉換結果12/7/2012',不,你得到一個DateTime對象,你看到的就是根據您所在地區的字符串表示。如果你想要一個特定的格式,使用'dateTime.ToString(format)' –

相關問題