2010-06-18 191 views
1

我想将特定格式的字符串转换为DateTime将字符串转换为DateTime对象

我的具体字符串格式是“dd-mm-yyyy”。

我不能做任何字符串操作。

这是我现在所拥有的代码:

DateTime convertedDate = DateTime.Parse(stringInput); 

回答

12

看来你想要的静态ParseExact方法,你可以指定实际的日期时间格式。

var convertedDate = DateTime.ParseExact(input, "dd-MM-yyyy", null); 

(根据上下文,你可能还需要指定CultureInfo.InvariantCulture,而不是null /电流文化作为参数。)

0

这听起来像一个本地化问题 - 如果是这种情况,我建议使用接受System.IFormatProvider的overloads of DateTime.parse之一。从文档:

 
Type: System.IFormatProvider 
An object that supplies culture-specific format information about s. 

这也使你的代码是灵活的 - 如果日期格式在未来发生了改变,以支持不同的文化,你可以改变的格式提供。

0
var convertedDate = DateTime.ParseExact("04-05-2010","dd-MM-yyyy",CultureInfo.InvariantCulture); 
0
string m = "11-02-1983"; 

var culture = CultureInfo.CreateSpecificCulture("fr-FR"); 
var styles = DateTimeStyles.None; 

DateTime date; 
if (DateTime.TryParse(m, culture, styles, out date)) 
{ 
    //grabbed date successfully 
} 
else 
{ 
    //epic fail 
}