2013-07-04 17 views
1

Я пробовал различные варианты для моей проблемы, но никто не работает для меня. Я работаю в # и имею переменную с датой данных даты со значением как {07/03/2013 17:27:02}, теперь я хочу, чтобы эта дата отображалась как 03-July-2013, но, похоже, она выглядит как 07-March-2013.Как преобразовать дату SQL в читаемый формат

бит кода

DateTime publishDate = "07/03/2013 17:27:02"

string publish = publishDate.ToString("dd-MMM-yyyy")

Tried this too: String.Format("{0:MMM d, yyyy}", publishDate)

Это то, что я пытаюсь, я думал, что это будет довольно простое преобразование, но я поражен. Может ли кто-нибудь указать мне в правильном направлении?

+2

попробовать String.Format ("{0: дд-MMMM-YYYY}", publishDate) – Sam

+0

'DateTime publishDate =«07/03/2013 17 : 27: 02 "' не будет компилироваться. Вы не можете просто назначить 'string'' DateTime'. –

+0

Как это относится к SQL, который вы ввели в свой заголовок? –

ответ

3

Вот ссылка на верстку DateTimes как строки в C#

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Вам нужно String.Format ("{0: дд-MMMM-гггг}", publishDate) по внешности из этого.

Если ваша дата вышла как март вместо июля, то похоже, что ваш региональный формат где-то некорректен. Это может быть проблемой.

+0

проблема была, по какой-то причине, дата сохранялась как формат 2013-dd-mm, а не формат 2013-мм-dd в базе данных. – Jay

1

Используйте "MMMM", чтобы отобразить полное название месяца.

Console.Write(DateTime.Now.ToString("dd-MMMM-yyyy")); 
// Result: 04-july-2013 
0

Поскольку ваша дата выводится с месяцем и день значением перевернутого, я бы рассмотреть возможность использования:

DateTime.ToString("dd-MMMM-yyyy, CultureInfo.InvariantCulture); 

InvariantCulture не будет принимать ваши настройки Culture системы в рассмотрении.

1

Попробуйте вместо этого:

DateTime publishDate = DateTime.ParseEaxct("07/03/2013 17:27:02", 
          "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture); 

string publish = publishDate.ToString("dd-MMMM-yyyy"); 

Надеется, что это будет исправить вашу проблему.

0

Вы можете указать своей базе данных для получения правильного формата для каждой даты или отметки времени. Это позволяет избежать любых ошибок преобразования на стороне клиента.

Это некоторые примеры для Oracle:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'; 
ALTER SESSION SET NLS_TIME_FORMAT = 'HH24:MI:SS'; 
ALTER SESSION SET NLS_TIME_TZ_FORMAT = 'HH24:MI:SS TZH:TZM'; 
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; 
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD HH24:MI:SS TZH:TZM'; 
Смежные вопросы