我有一个像“1392/02/10 22:30:15”的字符串,如何用变量分隔变量中的每个数字?我的代码如下:
string str1="1392/02/10 22:30:15";
string[] str2 = str1.Split(new char[] { '/', ':',' '});
我得到了1392年,02年和10年,但是得到了22分
int hour = int.Parse(str2[3]);
使用此标题进行操作:“输入字符串的格式不正确。”
答案 0 :(得分:5)
答案 1 :(得分:4)
如果您只是将日期解析为DateTime
,那将更有意义:
string str1 = "1392/02/10 22:30:15";
DateTime d = DateTime.ParseExact(str1, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
如果您不确定输入的有效性,可以使用TryParseExact
:
if (DateTime.TryParseExact(str1, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime d))
{
// the date is valid, use it
}
您当前的代码有效,但非常容易出错。您最好依赖于自动完成此任务的框架部分。您的代码的一个问题可能是额外的空间,选项卡而不是空格等。