关于日期时间格式"%h:%m:%s"允许时间为“00”
本文关键字:时间 quot 许时间 格式 日期 于日期 | 更新日期: 2023-09-27 18:16:19
我有一个文本框,以"%h:%m:%s"
的格式输入时间。允许的时间输入:
01:20:00
12:20:00
我正在转换字符串从TextBox使用:
DateTime.TryParseExact("00:20:00", "%h:%m:%s",
culture, DateTimeStyles.None, out newData);
但以上代码在通过newData提供数据时,将小时00
转换为12
。在这种情况下,我想抛出错误。
似乎您应该尝试解析为TimeSpan
而不是DateTime
。
使用以下string.Format
模式转换为TimeSpan
:
var pattern = @"hh':mm':ss";
请参阅MSDN了解更多详细信息:http://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx
更新工作示例代码:
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
DateTime newData;
TimeSpan newSpan;
DateTime.TryParseExact("00:20:00", "%h:%m:%s",
CultureInfo.DefaultThreadCurrentCulture, DateTimeStyles.None, out newData);
Console.WriteLine(newData);
// 8/5/2014 12:20:00 AM
TimeSpan.TryParseExact("00:20:00", @"hh':mm':ss",
CultureInfo.DefaultThreadCurrentCulture, TimeSpanStyles.None, out newSpan);
Console.WriteLine(newSpan);
// 00:20:00
Console.WriteLine(newSpan.Hours);
// 0
Console.WriteLine(newSpan.TotalHours);
// 0.33~
Console.ReadLine();
}
}
}
您应该使用大写的"H"来表示24小时的时间。