繁体   English   中英

如何告诉convert.todatetime输入格式为dd-mm-yyyy

[英]how to tell convert.todatetime that the input is in format dd-mm-yyyy

写了应该写的代码

  • 从用户那里获取时间和日期输入

  • 并将其转换为日期时间格式

  • 为hrs添加一些值并显示它。

当用户以默认格式输入时,我的代码工作正常但是当用户输入dd-mm-yyyy而不是mm / dd / yyyy(默认)之类的日期时,它不起作用。

如何更改转换功能以解决此问题?

    DateTime dt_calc = new DateTime();
    dt_calc = Convert.ToDateTime(inputt);

要以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));

不要使用Convert - DateTimeParseTryParseParseExactTryParseExact方法,这些方法采用IFormatProvider虽然这样只需使用解析应该工作:

DateTime dt_calc = DateTime.Parse(inputt);

如果您想安全,请使用`TryParse:

DateTime dt_calc;
DateTime.TryParse(inputt, out dt_calc); // TryParse returns true if success, false if not

看看这个扩展DateTime解析功能的代码项目 或者,在GitHub上有一个Natural Date Parser类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM