c#与一些分界符分开

时间:2017-05-03 07:27:27

标签: c# asp.net

我有一个像“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]);

使用此标题进行操作:“输入字符串的格式不正确。”

2 个答案:

答案 0 :(得分:5)

我要解析日期

date

小提琴:https://dotnetfiddle.net/489Ev3

答案 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
}

您当前的代码有效,但非常容易出错。您最好依赖于自动完成此任务的框架部分。您的代码的一个问题可能是额外的空间,选项卡而不是空格等。