编写了应该
的代码从用户那里获取时间和日期输入
并将其转换为日期时间格式
为hrs添加一些值并显示它。
当用户以默认格式输入输入时,我的代码工作正常但是当用户输入dd-mm-yyyy而不是mm / dd / yyyy(默认)之类的日期时,它不起作用。
如何更改转换功能以解决此问题?
DateTime dt_calc = new DateTime();
dt_calc = Convert.ToDateTime(inputt);
答案 0 :(得分:7)
要转换dd-mm-yyyy
格式的日期,请使用:
var dateValue = DateTime.Parse("11/03/1989", new CultureInfo("en-GB", false));
但是不要忘记在标题中添加System.Globalization
或者只是内联:
var dateValue = DateTime.Parse("11/03/1989", new System.Globalization.CultureInfo("en-AU", false));
答案 1 :(得分:2)
不要使用Convert
- DateTime
有Parse
,TryParse
,ParseExact
和TryParseExact
方法{{1}但是为此,只需使用解析就可以了:
IFormatProvider
如果您想安全,请使用`TryParse:
DateTime dt_calc = DateTime.Parse(inputt);
答案 2 :(得分:1)
看一下扩展DateTime解析功能的Code Project。或者,在GitHub上有一个Natural Date Parser类。