C# 如何验证日期时间
我必须用c#验证日期时间。 因此,我构建了以下代码:C# 如何验证日期时间,c#,datetime,C#,Datetime,我必须用c#验证日期时间。 因此,我构建了以下代码: private const string Format = "yyyy-MM-dd hh:mm:ss.fff"; public object ValidDate(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.Value == null) { return null;
private const string Format = "yyyy-MM-dd hh:mm:ss.fff";
public object ValidDate(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value == null)
{
return null;
}
var s = reader.Value.ToString();
DateTime result;
if (DateTime.TryParseExact(s, Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
return result;
}
return DateTime.Now;
}
现在如果我用这个日期
2016-06-09 11:20:50.125
没关系,但如果我试着用这个日期
2016-06-09 13:20:50.125
日期无效。问题就在这个时间。从1点到12点没关系。从13岁到24岁都不行。
我怎样才能修复它?您的格式看起来不太好。将
hh
替换为hh
:
private const string Format = "yyyy-MM-dd HH:mm:ss.fff";
private const string Format = "yyyy-MM-dd HH:mm:ss.fff";
参考:传递给
DateTime的hh
格式。TryParseExact()
预计12小时格式的时间为1小时
如果您有24小时格式的时间,则必须将其更改为HH
:
private const string Format = "yyyy-MM-dd HH:mm:ss.fff";
private const string Format = "yyyy-MM-dd HH:mm:ss.fff";
您的格式字符串
yyyy-MM-dd hh:mm:ss.fff
使用hh
指定您希望以12小时表示的时间
使用HH
而不是HH
,它应该按照您的预期工作用于将小时表示为从01
到12
的数字的格式。改为使用表示格式的,表示00
到23
private const string Format = "yyyy-MM-dd HH:mm:ss.fff";
您可以参考这一点-顺便说一下,在C#中,没有24:00
表示法。它以00:00
表示,与大多数其他现代语言/应用程序一样。阅读:和。同样来自:午夜
是一种特殊情况,可称为“00:00”
或“24:00”
。表示法“00:00”
在日历日开始时使用,使用频率更高。在一天结束时使用“24:00”
<代码>“2007-04-05T24:00”与“2007-04-06T00:00”