作者don750421 (1+1≠2)
看板C_Sharp
標題[問題] 如何Parse DB時間 => C# DateTime
時間Wed Sep 30 22:49:57 2015
今天早上測試好久,最後放棄了@@
但是還是上來問一下各位前輩...
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://webptt.com/m.aspx?n=bbs/C_Sharp/M.1443624601.A.EA3.html
1F:推 Litfal: 試試看 DateTime dt = DateTime.Parse(strDate, new 09/30 23:14
2F:→ Litfal: System.Globalization.CultureInfo("zh-TW")); 09/30 23:18
3F:→ Litfal: 不過比較重要的是,你是用什麼方法去讀DB的... 09/30 23:19
感謝前輩回覆,我有試過直接用Parse。此種方法確實可行
DateTime dt = DateTime.Parse(strDate); //直接這樣就行了...
不過,好奇真的無法透過ParseExact嗎?
我讀取DB的方式是透過ODBC連線,把資料庫的資料抓回來並塞入DataTable。
※ 編輯: don750421 (114.27.138.167), 10/01/2015 00:06:17
4F:→ Litfal: 確定讀出來就是string嗎?有試過 10/01 00:45
5F:→ Litfal: DateTime dt = (DateTime)dataRow["mydate"]; 10/01 00:46
6F:→ Litfal: 你可以用dataTable.Columns["mydate"].DataType 確認 10/01 00:52
7F:→ Litfal: 另外,你ParseExact沒有用到對的Format,應該用 "g" 或是 10/02 01:13
8F:→ Litfal: "yyyy/M/d tt hh:mm:ss" 10/02 01:13
9F:→ gamer880831: convert.todatetime 10/03 21:34