作者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/cn.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