2013-07-26 74 views
4

我試圖將Oracle DateTime字段轉換爲字符串(TextBox)。不過,我不斷收到以下錯誤:該字符串未被識別爲有效的日期時間(格式)

The string was not recognized as a valid DateTime.

在字段中的值是:7/25/2013 4:12:18 PM

代碼:

DateTime dt = DateTime.ParseExact("MM/dd/yyyy HH:mm:ss tt",dr["category"].ToString().Trim(), CultureInfo.InvariantCulture); 
txtFedCat.Text = dt.ToString("dd/M/yyyy"); 
+1

資本'HH'意味着24小時我很確定.. –

回答

3

試試這個:

DateTime dt = DateTime.ParseExact(dr["category"].ToString().Trim(), "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 

的第一個參數ParseExact是日期字符串,第二個是格式。你反過來了。 此外我認爲你要使用以下格式說明:通過31

  • 小時月份的一天,從1:到12
  • d的月份,從1:

    • L:小時,使用12小時時鐘從1到12
  • +0

    Fi fcuesta,感謝您的幫助。我試過你的解決方案,但我仍然得到相同的錯誤:'字符串未被識別爲有效的日期時間' – Zzz

    +0

    忽略我以前的評論。我添加代碼後導致錯誤的SQL語句有問題。你的回答是對的。謝謝! – Zzz

    +0

    CultureInfo.InvariantCulture是什麼意思? – Thomas

    1
    var dateString = "7/25/2013 4:12:18 PM"; 
    DateTime dt = DateTime.ParseExact(dateString, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 
    var txtFedCat = dt.ToString("dd/M/yyyy"); 
    
    0

    ,你可以這樣做:

    string strDate = DateTime.ParseExact(yourDateTime, "M/d/yyyy h:mm:ss tt", null).ToString(); 
         if (strDate.Substring(0, 10).Trim().LastIndexOf(" ", System.StringComparison.Ordinal) == 8) 
          strDate = strDate.Substring(0, 8).Trim(); 
         else 
          strDate = strDate.Substring(0, 10).Trim(); 
         DateTime FinalDate = Convert.ToDateTime(strDate); 
    
    +0

    請詳細說明問題出現的原因以及此代碼的作用。 – Daenarys

    +0

    此代碼是由於日期格式: – Roya

    相關問題