如何从日期字符串中提取YYYY-mm-dd?

时间:2017-08-25 17:46:59

标签: c# c#-4.0

我的日期格式为2017-08-24 22:22:45。如何仅提取2017-08-24

我试图使用:

var data = date.Split('-');
string convertedDate = data[0] + date[1] + date[2];

但我不喜欢这个解决方案/

8 个答案:

答案 0 :(得分:8)

DateTime s = DateTime.Parse("2017-08-24 22:22:45");
Console.WriteLine(s.ToString("yyyy-MM-dd"));

更多日期时间.ToString()格式 https://blog.nicholasrogoff.com/2012/05/05/c-datetime-tostring-formats-quick-reference/

答案 1 :(得分:2)

其他选项可能是:

string date = "2017-08-24 22:22:45"; 
string convertedDate = date.Split(' ')[0];

// Result: 2017-08-24

答案 2 :(得分:2)

如果日期:

string convertedDate = date.ToString("yyyy-MM-dd");

如果是String:

string convertedDate = data.Substring(0,10);

答案 3 :(得分:2)

简单:

var convertedDate = date.Substring(0, 10);

答案 4 :(得分:1)

您的字符串可以转换为DateTime对象,然后您可以随意使用。

string dateStr = "2017-08-24 22:22:45";

DateTime date = DateTime.Now;

if(DateTime.TryParse(dateStr, out date))
    Console.Write(date.ToString("yyyy-MM-dd"));

答案 5 :(得分:1)

使用 ParseExact

var strDate = "2017-08-24 22:22:45";
DateTime myDate = DateTime.ParseExact(strDate, "yyyy-MM-dd HH:mm:ss",
                  System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine("Your date "+ myDate.ToString("yyyy-MM-dd"));

https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx

答案 6 :(得分:0)

您可以使用正则表达式模式:

var src = "2017-08-24 22:22:45";
var pattern = @"^\d{4}-\d{2}-\d{2}";

var ans = Regex.Match(src, pattern).Value;

但这可能有点过分 - 只是提取它:

var ans = src.Substring(0, 10);

答案 7 :(得分:0)

这对你有用,

string date = "2017-08-24 22:22:45"; string convertedDate = date.Split(' ')[0];