一直试图解决这一个小时... ...日期时间解析困境在C#
string date = "2009-09-23T13:00:00"
DateTime t = new DateTime();
t = DateTime.ParseExact(date, "HH:mm", null);
结果此异常:
System.FormatException被未处理 消息=“字符串未被识别为有效的DateTime“。
一直试图解决这一个小时... ...日期时间解析困境在C#
string date = "2009-09-23T13:00:00"
DateTime t = new DateTime();
t = DateTime.ParseExact(date, "HH:mm", null);
结果此异常:
System.FormatException被未处理 消息=“字符串未被识别为有效的DateTime“。
t = DateTime.ParseExact(date, "yyyy-MM-ddTHH:mm:ss", null);
随着ParseExact,你想获得一个字符串,并告诉解析器的字符串是什么格式,上面的线将它转换为有效的DateTime。
如果您希望仅显示小时和分钟,那么您需要添加如下内容:
string myString = t.ToString("HH:mm");
ParseExact要求字符串与格式完全匹配。这一个没有。你需要yyyy-MM-ddTHH:mm:ss作为你的字符串。
文档说明了一切:
字符串 表示的格式必须指定 格式完全匹配或异常是 抛出。
您的日期字符串与格式HH:mm不匹配。
顺便说一句,你可以离开= new DateTime();一部分离开。
您试图指定与输入不匹配的格式。 ParseExact
要求您指定输入格式;你不能简单地指定一个格式来指示你想要提取哪些组件。
这里需要使用的格式是"yyyy-MM-ddTHH:mm:ss"
。
但是,如果这看起来像XML日期/时间格式,那么使用XmlConvert.ToDateTime
方法可能会更好,因为它可以处理XML日期格式规范的微妙之处。
XmlConvert是我正在寻找的答案(否则我会添加它;-p) – 2009-12-31 14:56:38
但是,如果我想要一个只包含小时和分钟的DateTime? – 2009-12-31 14:55:24