我正在尝试采用不同的时间格式并将其解析为短时间格式“上午5:00”
我希望能够找出这些不同的格式。 “5am”“5:00 am”,“05am”,“05:00 am”,“5 am”“5:00 am”,“05 am”,“05:00 am”,“5”,“13”< / p>
这是我目前所拥有的
string[] formats = { "hh", "%h", @"h\:mm", @"hh\:mm", @"d\.hh\:mm\:ss", "fffff", "hhmm" };
TimeSpan newTime = new TimeSpan();
if (TimeSpan.TryParseExact(txtEndTime.Text, formats, null, out newTime))
{
txtEndTime.Text = Parser.GetDateTime(newTime).ToShortTimeString();
}
答案 0 :(得分:0)
我认为这实际上是如此
string[] formats = { "hh", "hhtt", "hh tt", "%h", "%htt", "%h tt", @"h\:mm", @"h\:mmtt", @"h\:mm tt", @"hh\:mm",
@"hh\:mmtt", @"hh\:mm tt", @"d\.hh\:mm\:ss", @"d\.hh\:mm\:sstt", @"d\.hh\:mm\:ss tt", "fffff",
"hhmm", "hhmmtt", "hhmm tt" };
DateTime newDate = new DateTime();
if (DateTime.TryParseExact(txtStartTime.Text, formats, null, DateTimeStyles.None, out newDate))
{
txtStartTime.Text = newDate.ToShortTimeString();
}
答案 1 :(得分:0)
首先看看这个(日期时间格式):
http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
在这种情况下,您不应该使用TimeSpan。相反,创建一个DateTime并使用其方法'ToString':
string[] formats = { @"hh:mm tt", "%h", @"h\:mm", @"hh\:mm", @"d\.hh\:mm\:ss", "fffff", "hhmm" };
var dat = new DateTime(2013, 6, 20, 5, 0, 0);
var provider = CultureInfo.InvariantCulture;
foreach (var format in formats)
{
textBox1.Text += dat.ToString(format, provider) + Environment.NewLine;
}
编辑:同时将提供商设置为'CultureInfo.InvariantCulture'。