0
 /* string fecha_act = DateTime.Now.ToString("d/MM/yy"); */
date_act = "10-12-12"  
string[] splitting = date_act.Split('-');

foreach (string split in splitting)
{
    MessageBox.Show(split);
}

上面的代码显示了字符串中的日期。该字符串将分为三个部分。也就是说,我需要将三个部分保存在三个不同的字符串中。

string day_act;
string month_act;
string year_act;

我试过用计数器和开关来做,但它不起作用。有什么建议么?

4

3 回答 3

7
string day_act;
string month_act;
string year_act;

string[] separando = date_act.Split('-');

day_act = separando[0];
month_act = separando[1];
year_act = separando[2];

或者,更好的是,给自己一个真正的日期对象:

string date_act = "10-12-12";
var foo = DateTime.ParseExact(date_act, "MM-dd-yy", null);

然后您可以查看类似foo.Day或的属性foo.Month

于 2012-10-12T18:13:08.343 回答
3

这不行吗?它是如此简单,我怀疑你已经尝试过了。

day_act = separando[0];
month_act = separando[1];
year_act = separando[2];

编辑

所以你想要替代方法Split吗?这里有一些:

  • 使用该DateTime.Parse方法的变体(如其他答案中所述)。

  • 使用正则表达式。

    var match = Regex.Match(date, @"(?<day>\d+)-(?<month>\d+)-(?<year>\d+)");
    day_act = match.Groups["day"].Value;
    month_act = match.Groups["month"].Value;
    year_act = match.Groups["year"].Value;
    
于 2012-10-12T18:12:58.517 回答
0

两个答案都解决了我提出的问题,但为了彻底解决我的问题,我选择了一个完全不使用拆分的替代解决方案。在这种情况下,是一个子字符串。

day_act = date_act.Substring(0,2);
month_act = date_act.Substring(3,2);
year_act = date_act.Substring(6,2);
于 2012-10-12T21:21:12.627 回答