2010-06-18 3 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

Это звучит как проблема локализации - если это так, я рекомендую использовать один из overloads of DateTime.parse, который принимает System.IFormatProvider. Из документов:

 
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 
}