基于“/”拆分字符串

时间:2017-11-29 06:18:45

标签: c# string date split

我有一个字符串:

string s = "1/09/2017 12:00:00 AM"; 

我要显示的输出是 1/09/17 (基本上是短日期)。

如果

string s ="30/09/2017 12:00:00 AM"

我要显示的输出是 30/09/17 (基本上是短日期)。

我试过的是:

string[] values = s.Split('/');
string a = values[0]+"/"+values[1]+"/"+values[2].

我很困惑如何让第3部分需要帮助。

5 个答案:

答案 0 :(得分:6)

使用.NET内置的DateTime解析。

例如:

string s = "1/09/2017 12:00:00 AM";
string format = "d/MM/yyyy hh:mm:ss tt";
DateTime parsedDateTime = DateTime.ParseExact(s, format, null);
string output = parsedDateTime.ToString("d/MM/yy"); //output = 1/09/17

更多信息:

答案 1 :(得分:0)

我的建议是使用内置日期数据类型。 如果这不符合您的要求,那么我建议您根据分隔符"分割字符串。 "(空格)。然后选择第一部分并继续您的代码。

答案 2 :(得分:0)

您可以使用像这样的子字符串

string s = "30/09/2017 12:00:00 AM";

        string[] values = s.Split('/');
        string a = values[0] + "/" + values[1] + "/" + values[2].Substring(2,2);

答案 3 :(得分:0)

DateTime date = DateTime.ParseExact("1/09/2017 12:00:00 AM", "d/MM/yyyy hh:mm:ss tt", null);
Console.WriteLine(date.ToString("d/MM/yy"));

将您的日期字符串转换为DateTime,然后使用参数ToString的{​​{1}}重载方法方法,请找到Fiddle

答案 4 :(得分:0)

添加到Paolo的anwer

            string s = "1/09/2017 12:00:00 AM";
            string format = "d/MM/yyyy hh:mm:ss tt";
            DateTime parsedDateTime = DateTime.ParseExact(s, format, null);
            string output = parsedDateTime.ToString("d/MM/yy");
            string ss = output.Replace("-","/");
            Console.Write(ss); //output is 1/09/17

这将完全返回确切的预期输出