我有这样的字符串:
"10:00 AM"
"11:30 AM"
"12:00 AM"
从这个stringi我想知道HOUR和Mins以及AM /或PM作为单独的值。
答案 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);