亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符串不被識別為有效的日期時間“格式dd/mm/yyy”

字符串不被識別為有效的日期時間“格式dd/mm/yyy”

慕的地6264312 2019-06-28 17:31:56
字符串不被識別為有效的日期時間“格式dd/mm/yyy”我正在嘗試用格式將我的字符串格式化值轉換為日期類型。dd/MM/yyyy.this.Text="22/11/2009";DateTime date = DateTime.Parse(this.Text);有什么問題嗎?它有第二個要求IFormatProvider..這是什么?做我也要通過這個嗎?如果是的話,這個案子該怎么用呢?編輯.之間有什么區別?Parse和ParseExact?編輯2Slaks和Sam的兩個答案都是為我工作的,目前用戶正在提供輸入,但我將向您保證,通過使用maskTextbox,它們是有效的。哪一個答案更好地考慮到所有方面,比如類型安全、性能或者你感覺到的東西。
查看完整描述

3 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

你需要打電話ParseExact,它解析的日期與您提供的格式完全匹配。

例如:

DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

這個IFormatProvider參數指定用于解析日期的區域性。
除非您的字符串來自用戶,否則應傳遞CultureInfo.InvariantCulture.
如果字符串確實來自用戶,則應傳遞CultureInfo.CurrentCulture,它將使用用戶在“控制面板”中的“區域選項”中指定的設置。


查看完整回答
反對 回復 2019-06-28
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

解析日期時間的字符串表示是一件棘手的事情,因為不同的區域性有不同的日期格式。NET知道這些日期格式,并將它們從當前區域性中提取出來(System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat)當你打電話的時候DateTime.Parse(this.Text);

例如,字符串“22/11/2009”與ShtDatePattern對于美國(en-US),但它確實與法國(fr-fr)相匹配。

現在,你要么打電話DateTime.ParseExact并傳遞您所期望的確切格式字符串,或者可以將適當的區域性傳遞給DateTime.Parse解析日期。

例如,這將正確地解析您的日期:

DateTime.Parse( "22/11/2009", CultureInfo.CreateSpecificCulture("fr-FR") );

當然,你不應該只是隨便選擇法國,而是適合你的需要。

你需要弄清楚的是System.Threading.Thread.CurrentThread.CurrentCulture設置為,以及它是否/為什么與您預期的不同。


查看完整回答
反對 回復 2019-06-28
  • 3 回答
  • 0 關注
  • 1227 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號