2011-01-06 7 views
2

У меня есть строка, как этотspliting строку

string strdate [email protected]"5/2/2006"; 

, который находится в форме month/day/year.

Мне нужно отобразить его в форме 02-05-2006.

Как мне форматировать данные?

Если значение таково: 12/28/2005, оно должно отображаться следующим образом: 28-12-2010.

Я знаю, что мы должны разделить данные на основе того, что мы должны это делать.

Я не получаю синтаксис, как это сделать.

Любая помощь будет отличной.

ответ

10

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

DateTime dt = DateTime.ParseExact(@"5/2/2006", 
            "MM/dd/yyyy", 
            CultureInfo.InvariantCulture); 
string output = dt.ToString("dd-MM-yyyy"); 

Я предлагаю читать на custom и standard строк формата даты и времени.

+0

Бетон и хороший ответ. –

-2

Вы можете использовать string.replace как таковой:

string newString = oldString.Replace('/', '-'); 

Это заменит каждый «/» с «-» и создать новую строку, он не заменит его в старой строки, как строки являются неизменными ,

+0

Почему отрицательный, пожалуйста? –

+2

Вы не работаете с датами, разбивая строку. Используйте рамки под рукой! –

+0

Aah okay. Я читал его так, как будто он просто хотел изменить несколько символов внутри строки. –

0

@Kevin

var datearray = strdate.split('/'); 

string date = datearray[0] + "-" + datearray[1] + "-" datearray[2]

Выпуск 1
Это обыкновение работайте с дней с 10 по 31-е ... Он добавит начальный ноль к каждому дню.
12- 5-2010 это хорошо, но, напр. 12- 21-2010 не очень хорошо.

Выпуск 2
Неправильный порядок ММ-ДД