DateTime或TimeSpan数据掩码?



我正在为DateTimeTimeSpan部分寻找一个完全自定义的DateTime属性数据掩码。或者,为了方便起见,我可以将属性本身设置为TimeSpan

  1. 我需要显示在24小时的时间没有秒,像这些例子:8:45,17:36
  2. 我需要输入数据像这些例子:845 == 8:45,1736 == 17:36例如,用户不必输入分号:

我知道你可以像这样将时间格式化为stringstring time = new TimeSpan(8, 45, 0).ToString("HH:mm")但它不能是字符串。我看了文档,但我自己想不起来。如果有人能给我指出正确的方向,关于面具需要是什么,那就太好了。

编辑:它是在WinForms

欢呼

正如其他人提到的,您需要自己创建一些转换方法。下面的代码可能会有帮助。

// Display current time
Console.WriteLine(DateTime.Now.ToString("HHmm").TrimStart('0'));
// Read some input
var str = Console.ReadLine();
// Validate input (if required)
int time;
if (!int.TryParse(str, out time) || time < 100 || time > 2359)
{
Console.WriteLine("Invalid time");
return;
}
int h = time / 100;
int m = time % 100;
if (m > 59)
{
Console.WriteLine("Invalid time");
return;
}
// Construct TimeSpan and DateTime
var timeSpan = new TimeSpan(h, m, 0);   // You have the TimeSpan here
var dateTime = DateTime.Now.Date + timeSpan;    // You have the DateTime here
Console.WriteLine(timeSpan);
Console.WriteLine(dateTime);

最新更新