C#处理时间输入

时间:2018-11-08 10:21:59

标签: c# date time

例如,让我输入一个时间,输入必须采用HH:MM格式,并且输入必须在用户输入中包含冒号,我将如何创建和存储它?

输入将来自WPF窗口上的文本框

1 个答案:

答案 0 :(得分:1)

不是很精确的问题,但让我帮忙一点:

这是一个简单的示例,说明如何解析一个可能的字符串,并将其存储在DateTime变量中(如果以后要以其他格式显示,以此类推,这可能是干净的解决方案)。

string text = "21:05"; (instead you retrieve the content of your text box obviously)
string format = "HH:mm";
CultureInfo fr = new CultureInfo("fr-FR");
DateTime dt = DateTime.ParseExact(text, format, fr);

[编辑]基于德米特里的评论:

string text = "21:05";
string format = "HH:mm";
CultureInfo invariant = System.Globalization.CultureInfo.InvariantCulture;
DateTime dt;
if (DateTime.TryParseExact(text, format, invariant, DateTimeStyles.None, out dt))
{
// do your stuff
}
else
{
// handle the fact you cannot parse the datetime
}

请注意,根据您的情况,文化背景可能真的很重要。如果要避免用户输入错误,则应考虑在用户输入内容时对盒内容进行验证。这是一种迫使他遵守您期望的格式的方法。

例如,在这里查看:Implement Validation for WPF TextBoxes,但是您应该能够找到有关如何在SO上执行此操作的其他示例,或者只是在Google上搜索它。