我正在为DateTime
的TimeSpan
部分寻找一个完全自定义的DateTime
属性数据掩码。或者,为了方便起见,我可以将属性本身设置为TimeSpan
- 我需要显示在24小时的时间没有秒,像这些例子:
8:45
,17:36
- 我需要输入数据像这些例子:
845 == 8:45
,1736 == 17:36
例如,用户不必输入分号:
我知道你可以像这样将时间格式化为string
,string 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);