[問題] 如何Parse DB時間 => C# DateTime

看板C_Sharp (C#)作者 (1+1≠2)時間9年前 (2015/09/30 22:50), 9年前編輯推噓1(108)
留言9則, 2人參與, 最新討論串1/1
今天早上測試好久,最後放棄了@@ 但是還是上來問一下各位前輩... Oracle 資料庫內的欄位是Date。然後,撈出來的結果是... string strDate = "2015/9/30 上午 11:30:26"; 我定義了許多格式來試圖Parse. string[] arrFormat = new string[]{ "yyyyMMdd HH:mm:ss", "yyyy/MM/dd tt hh:mm:ss", "yyyy/M/dd tt hh:mm:ss" } DateTime ParseResult1 = DateTime.ParseExact(strDate, arrFormat, CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces); 但是,最後仍是拋出Exception..... 最後,放棄C#,改由下SQL 直接TO_CHAR轉成可以Parse的格式... 不曉得有沒有人知道該怎麼解決呢?? 謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.138.167 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1443624601.A.EA3.html

09/30 23:14, , 1F
試試看 DateTime dt = DateTime.Parse(strDate, new
09/30 23:14, 1F

09/30 23:18, , 2F
System.Globalization.CultureInfo("zh-TW"));
09/30 23:18, 2F

09/30 23:19, , 3F
不過比較重要的是,你是用什麼方法去讀DB的...
09/30 23:19, 3F
感謝前輩回覆,我有試過直接用Parse。此種方法確實可行 DateTime dt = DateTime.Parse(strDate); //直接這樣就行了... 不過,好奇真的無法透過ParseExact嗎? 我讀取DB的方式是透過ODBC連線,把資料庫的資料抓回來並塞入DataTable。 ※ 編輯: don750421 (114.27.138.167), 10/01/2015 00:06:17

10/01 00:45, , 4F
確定讀出來就是string嗎?有試過
10/01 00:45, 4F

10/01 00:46, , 5F
DateTime dt = (DateTime)dataRow["mydate"];
10/01 00:46, 5F

10/01 00:52, , 6F
你可以用dataTable.Columns["mydate"].DataType 確認
10/01 00:52, 6F

10/02 01:13, , 7F
另外,你ParseExact沒有用到對的Format,應該用 "g" 或是
10/02 01:13, 7F

10/02 01:13, , 8F
"yyyy/M/d tt hh:mm:ss"
10/02 01:13, 8F

10/03 21:34, , 9F
convert.todatetime
10/03 21:34, 9F
文章代碼(AID): #1M2_QPwZ (C_Sharp)
文章代碼(AID): #1M2_QPwZ (C_Sharp)