解析这样的字符串日期:2016年3月3日至2016年12月3日

时间:2016-10-26 13:27:43

标签: c# parsing datetime

我需要做一个简单的解析,将实际的单词March(或任何月份)从保存到这样的字符串的数据中删除:" March 03 / 12/2016"。

结尾结果必须是一个字符串,如:" 03/12/2016"。

我一直在查看日期时间格式化程序,而我找不到一个简单的方法来删除一个月。我正在考虑将字符串从右到左切割成11个字符,然后只修剪其余部分,但我觉得这很邋and,可能有一个日期格式选项,我只是没有找到。

任何建议?

4 个答案:

答案 0 :(得分:4)

这样做:

string input = "March 03/12/2016";
string output = input.Substring(input.IndexOf(' ') + 1);

答案 1 :(得分:3)

另一种方法:

string result = input.Split(' ')[1];

答案 2 :(得分:1)

假设月份名称是该月份的正确英文名称,您可以使用MMMM提取月份名称。然后,您可以根据需要格式化日期。

var date = "March 03/12/2016";
var parsedDate = DateTime.ParseExact(date, "MMMM MM/dd/yyyy", new CultureInfo("en-US"));
Console.WriteLine(parsedDate.ToString("MM/dd/yyyy"));

dotnetfiddle.net

请记住,如果从日期解析的月数不同,例如。 October 03/12/2016,将抛出异常。

答案 3 :(得分:1)

string input = "March 03/12/2016";
string output;
int index = input.IndexOf(' ');

if(index >= 0) //Checks if there exists a space
{
    output = input.Substring(input.IndexOf(' ') + 1);
}

您需要首先检查是否总会有空格,因为如果它不存在则会出现问题,因为input.IndexOf没有错误处理。