2017-08-25 372 views
0

我的日期格式为2017-08-24 22:22:45。如何仅提取2017-08-24如何从日期字符串中提取YYYY-mm-dd?

我试着使用:

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

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

+0

喜欢的东西[ParseExact](https://msdn.microsoft.com/fr-fr/library/w2sa9yss(V = vs.110).aspx),然后剪切时间部分 – litelite

+2

string formatted = date.ToString(“yyyy-MM-dd”); – Winnie

+0

'data.Substring(0,10)'? – juharr

回答

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); 
2

其他选项可以是:

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

// Result: 2017-08-24 
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")); 
2

如果日期:

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

如果字符串:

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

这对你的作品,

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

+0

'string.Split()'返回一个数组,而不是一个字符串。 – Sach

+0

你是对的....我改变了我的代码...你可以检查 –

2

只需:

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