日期选取器的字符串到日期时间转换问题
本文关键字:日期 时间 转换 问题 字符串 选取 | 更新日期: 2023-09-27 18:36:19
我正在从元素中的XML配置文件中读取字符串,然后将它们转换为日期时间以进入日期时间选取器控件。
XML 文件中的值为:
<config>
<Triggers>
<CalendarTrigger>
<Start>2012-07-02T18:00:00</Start>
<Next>2013-10-22T10:40:00</Next>
<Last>2013-10-01T18:00:00</Last>
<Result>Success</Result>
<Enabled>true</Enabled>
<ScheduleByDay>
... and so on...
我使用以下代码将字符串值转换为日期时间选择器控件的日期:
CalendarTrigger[0] = (result.Element("Next").Value != "") ? Convert.ToDateTime(result.Element("Next").Value).ToString("dd/MM/yyyy HH:mm:ss") : DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
dScanDate.Value = Convert.ToDateTime(CalendarTrigger[0]);
dScanTime.Value = Convert.ToDateTime(CalendarTrigger[0]);
不幸的是,即使代码将值正确读取到CalendarTrigger[0]
(CalendarTrigger[0] = "22/10/2013 10:40:00") 我得到一个字符串未被识别为有效的日期时间。 错误。
请问我做错了什么?
也许,尝试为您的DateTimePicker
设置自定义格式:
dateTimePicker.CustomFormat = "dd/MM/yyyy HH:mm:ss";
dateTimePicker.Format = DateTimePickerFormat.Custom;
尝试
string timeString = "23/10/2013 10:40:00";
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime dateVal = DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss", culture);
或仅使用固定文化
string timeString = "23/10/2013 10:40:00"
DateTime dateVal = DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
我找到了答案,我使用了不正确的日期时间转换格式
它应该是
CalendarTrigger[0] = (result.Element("Next").Value != "") ? Convert.ToDateTime(result.Element("Next").Value).ToString("MM/dd/yyyy HH:mm:ss") :DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");