【发布时间】:2011-01-17 06:12:07
【问题描述】:
请帮助我在 c# 中找到任何时间验证的代码。 格式-HHMMSS
【问题讨论】:
-
哦,是的,这闻起来像作业。
标签: c# validation time
请帮助我在 c# 中找到任何时间验证的代码。 格式-HHMMSS
【问题讨论】:
标签: c# validation time
最简单的方法大概就是使用DateTime.TryParseExact:
DateTime time;
bool valid = DateTime.TryParseExact(text,
"HHmmss",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out time);
注意“M”是月,“m”是分钟,“s”是秒; “HH”是 24 小时制的小时,而不是使用 12 小时制的“hh”(通常在其他地方带有 am/pm 指示符)。
DateTimeStyles.None 表示使用默认选项。这将使用今天的日期作为与时间同步的日期。您可以指定 DateTimeStyles.NoCurrentDateDefault,它将使用公元 1 月 1 日。
如果valid 为假,time 将被设置为DateTime.MinValue。
如果您使用 .NET 4,另一种选择是使用 TimeSpan.TryParseExact:
TimeSpan time;
bool valid = TimeSpan.TryParseExact(text,
"hhmmss",
CultureInfo.InvariantCulture,
out time);
注意这次使用“hh”而不是“HH”。有关详细信息,请参阅 MSDN 上的 Custom TimeSpan format strings 页面 - 但请记住,这仅在 .NET 4 中可用。
【讨论】:
IFormatProvider,但您已经可以使用null(使用当前文化)。
static bool IsTimeValid(string time)
{
DateTime dt;
return DateTime.TryParseExact(time, "HHmmss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out dt);
}
【讨论】: