解析日期时间格式时出错

时间:2017-08-23 09:40:28

标签: c# datetime

我正在尝试将两个字符串值解析为DateTime。

DateTime processStartTime = DateTime.ParseExact(currentDateTime.Date.ToString("dd-MM-yyyy") + " " + "00:00", "dd-MM-yyyy hh:mm", System.Threading.Thread.CurrentThread.CurrentCulture);

DateTime processEndTime = DateTime.ParseExact(currentDateTime.Date.ToString("dd-MM-yyyy") + " " + "13:00", "dd-MM-yyyy hh:mm", System.Threading.Thread.CurrentThread.CurrentCulture);

第一个语句正常,但第二个语句失败,异常 -

  

字符串未被识别为有效的DateTime

我做错了什么?

2 个答案:

答案 0 :(得分:7)

对于24小时格式,您必须使用HH:mm代替hh:mm

The "hh" custom format specifier

  

表示小时数字从01到12 ;也就是小时   由 12小时制表示,计算自此以来的整个小时数   午夜或中午。

The "HH" custom format specifier

  

" HH"自定义格式说明符(加上任意数量的附加" H"   说明符)将小时表示为数字从00到23 ;那   是,小时由基于零的 24小时制表示   午夜时分。使用a格式化一位数小时   领先零。

答案 1 :(得分:0)

您是否真的将DateTime对象转换为字符串然后将其转换回DateTime?否则你可以写:

  var startTime = currentDateTime.Date;
  var endTime = currentDateTime.Date.AddHours(13);