如何从包含HH:MM AM / PM的字符串获取小时分和上午/下午?

时间:2013-11-16 19:22:44

标签: c# asp.net vb.net

我有这样的字符串:

"10:00 AM"

"11:30 AM"

"12:00 AM"

从这个stringi我想知道HOUR和Mins以及AM /或PM作为单独的值。

3 个答案:

答案 0 :(得分:3)

您可以使用String.Split(String[], StringSplitOptions)方法;

string s = "10:00 AM";
var array = s.Split(new string[] {":", " "}, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(array[0]); //10
Console.WriteLine(array[1]); //00
Console.WriteLine(array[2]); //AM

输出将是;

10
00
AM

这里有 demonstration

或者更好的方法是,您可以使用Convert.ToDateTime(String)方法为您的字符串添加;

var dt = Convert.ToDateTime("10:00 AM");
Console.WriteLine(dt.Hour);
Console.WriteLine(dt.Minute);
Console.WriteLine(dt.ToString("tt"), CultureInfo.InvariantCulture);

输出将是;

10
0
AM

这里有 demonstration

编辑:作为andleer mentioned ,使用DateTime.Parse可以提供更好的选择。

答案 1 :(得分:1)

您可以使用Substring()函数获取字符串的一部分

Syntax: Substring(int startIndex,int length);

<强>的Sample1:

String strDate = "10:00 AM";
String HH = strDate.Substring(0, 2);//10
String MM = strDate.Substring(3, 2);//00
String tt= strDate.Substring(6, 2);//AM

Console.WriteLine(HH+":"+MM+" "+tt);

输出上午10:00

您还可以使用ToString()函数获取Time

所需的部分

<强>样品2:

DateTime myDate = Convert.ToDateTime(strDate);
Console.WriteLine(myDate.ToString("HH"));
Console.WriteLine(myDate.ToString("mm"));
Console.WriteLine(myDate.ToString("tt",System.Globalization.CultureInfo.InvariantCulture));

输出

10  
00  
AM

答案 2 :(得分:1)

您可以像这样解析DateTime对象:

string timeString = "10:00 AM";
DateTime timeObject = DateTime.ParseExact(timeString, "hh:mm tt", null);