Itz*_*had 4 c# datetime visual-studio-2008 winforms
字符串具有“ dd/MM/yyyy ”格式的值,例如“ 04/10/2012 ”。这应该转换为 Date wrt Current Culture of OS。
我已经尝试过将韩语作为当前操作系统文化的字符串,其中日期格式为yyyy-MM-dd,我的代码没有得到正确的月值,它将月值与日互换:
输入:“ 04/10/2012 ” 输出:2012-04-10
代码:
DateTime DT;
string dt = "04/10/2012";
DateTimeFormatInfo DateInfo = CultureInfo.CurrentCulture.DateTimeFormat;
DT = Convert.ToDateTime(String.Format ("{0:"+DateInfo .ShortDatePattern +"}", dt.Trim ()), CultureInfo .CurrentCulture);
MessageBox.Show("Date: " + DT.ToShortDateString());
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
在我看来,您需要使用固定格式解析它,我认为您目前正在使用“dd/MM/yyyy”以外的格式解析它,并且因为日期不明确(例如,月和日可以互换)不会导致无效日期)格式只是切换月和日值。当你再去输出它时,它看起来是相反的。
使用DateTime.ParseExact强制解析格式,然后使用内置在当前文化敏感字符串输出方法DateTime得到的格式化字符串:
var date = DateTime.ParseExact("04/10/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture);
MessageBox.Show("Date: " + date.ToShortDateString()); // Assumes current culture is controlling format
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29686 次 |
| 最近记录: |