iT邦幫忙

1

C# 字串轉日期

我有一段code,會跳字串未辨識有效的Datetime

row1["YEAR_MONTH"] = DateTime.Parse(Co.Rows[i]["YEAR_MONTH"].ToString()).ToString("yyyy/MM");

/images/emoticon/emoticon02.gif
YEAR_MONTH這個資料庫欄位是201701這種年月格式(yyyy/mm)
當然他會有比如201001~201912這些格式

然後我試著把後面拉出來處理,想處理好後再塞回row1裡面

DateTime Day2 =  DateTime.Parse(Co.Rows[i]["DELIVER_DATE"].ToString());

或者給他指定個日期時間

DateTime Day3 = DateTime.Parse("2019-2-1 10:15:30");

想做測試為什麼透過 Parse轉出來都跳 0001/1/1上午12:00 (Day2和Day3)
/images/emoticon/emoticon06.gif

0
海綿寶寶
iT邦超人 1 級 ‧ 2019-02-26 14:14:59

請參考這篇

0
allenlwh
iT邦研究生 4 級 ‧ 2019-02-26 14:28:26

1.201701這種年月格式(yyyy/mm),要做DateTime.Parse應該會跳錯誤,DateTime最起碼要是yyyymmdd才能執行Parse。
2.DateTime Day3 = DateTime.Parse("2019-2-1 10:15:30")是正常的。
https://ithelp.ithome.com.tw/upload/images/20190226/20033493qFcZTiKPYO.jpg

ted8224 iT邦新手 5 級 ‧ 2019-02-26 14:30:26 檢舉

年月轉換不行嗎?
(yyyy/mm),因為他欄位就只到這樣
有別的方法嗎?

allenlwh iT邦研究生 4 級 ‧ 2019-02-26 15:24:38 檢舉

原本是yyyy/MM,最後轉入row1["YEAR_MONTH"]的格式是yyyyMM嗎?
1.直接把"/"拿掉https://ithelp.ithome.com.tw/upload/images/20190226/20033493qFHE8OPIKZ.jpg
2.如果一定要用DateTime.Parse的話
https://ithelp.ithome.com.tw/upload/images/20190226/20033493I5aOtwAOf5.jpg

1
純真的人
iT邦高手 1 級 ‧ 2019-02-26 15:17:29

手動補1日呢?

row1["YEAR_MONTH"] = DateTime.Parse(Co.Rows[i]["YEAR_MONTH"].ToString() + "01").ToString("yyyy/MM");
看更多先前的回應...收起先前的回應...
Homura iT邦高手 2 級 ‧ 2019-02-26 15:20:34 檢舉

我也覺得這樣就行了/images/emoticon/emoticon06.gif

ted8224 iT邦新手 5 級 ‧ 2019-02-26 15:36:43 檢舉

手動補1日呢,也是跳
"字串未被辨認為有效的 DateTime"。

Homura iT邦高手 2 級 ‧ 2019-02-26 15:57:15 檢舉

ted8224
你少打一個斜線吧!

ted8224
row1["YEAR_MONTH"]
這個類型該不會是DateTime吧??
是的話,.ToString("yyyy/MM") 這樣是錯的吧?

ted8224 iT邦新手 5 級 ‧ 2019-02-26 16:04:54 檢舉

row1["YEAR_MONTH"] 他是一個圖表為X軸為時間
後面DateTime取資料庫時間為多少透過轉型別到row1["YEAR_MONTH"]

那你就這樣試試

row1["YEAR_MONTH"] = DateTime.Parse(Co.Rows[i]["YEAR_MONTH"].ToString() + "01");

我要發表回答

立即登入回答