2013-05-23 6 views
1

У меня есть объект DateTime со значением 2011-08-11T01:03:29+00:00, который возвращается из базы данных.Преобразование DateTime в пользовательский формат даты

Как это можно преобразовать в формат mm/dd/yyyy, где в качестве конечного результата должно быть DateTime объект, а не строка?

+0

Можете ли вы предоставить код? Вы используете ADO.NET? Entity Framework? –

+0

Datetime представляет дату и время независимо от того, как вы его показываете. Вам нужно посмотреть на что-то вроде http://www.codeproject.com/Articles/19677/Formats-for-DateTime-ToString – Rob

ответ

3

A DateTime объект - это только числовое представление даты как «тикает» с постоянного времени начала (например, 1 января 0000 года). Это не строковое представление. Чтобы получить строковое представление, вы делаете ToString() на объекте.

Чтобы преобразовать DateTime в строку для пользовательского формата, используйте

myDateTime.ToString("MM/dd/yyyy"); 

См http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx для получения полной информации о DateTime.ToString() пользовательских форматов.

См http://msdn.microsoft.com/en-us/library/system.datetime.aspx:

«Внутри все значения DateTime представлены как количество клещей (количество 100-наносекундных интервалов), прошедших с полуночи 12:00:00, 1 января 0001 . Фактическое значение DateTime не зависит от способа отображения этого значения при отображении в элементе пользовательского интерфейса или при записи в файл ».

+0

Прочтите полный вопрос. он не хочет приводить строку типа. он хочет быть только с датой только –

+0

Я понимаю запрос, но его оригинальный объект DateTime - это все, что ему нужно. Ему совсем не нужно его преобразовывать. Когда он нуждается в этом в своем обычном формате, он должен использовать свой пользовательский 'ToString()'. –

+0

Если он использует Entity Framework. Теперь тип столбца таблицы datetime, как он может использовать строку? –

1

Pass его в виде строки и разобрать его

format = "mm/dd/yyyy"; 
    try { 
    result = DateTime.ParseExact(yourDate.ToString(format), format, provider); 
    } 
    catch (FormatException) { 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
    } 

MSDN has all answers

+1

ОП заявил, что у него уже есть объект DateTime. –

+0

Пожалуйста, поймите и прочитайте полный вопрос! –

+0

?? Он просто говорит, что не хочет результата в строке. Его простой синтаксический анализ строки, где строка - это дата, обработанная строкой. – AAlferez

0

DateTime имеет функции называется ToLongDateString() и ToShortDateString() (я считаю, те правильные имена функций) и на короткой делает что вы хотите.

+0

Метод 'ToShortDateString()' вернет короткий формат даты на основе вашей текущей локали. Поэтому он может возвращать «mm/dd/yyyy», или «dd/mm/yyyy», или «yyyy/mm/dd» в зависимости от настроек вашего компьютера. –