2016-09-27 2 views
0

Я хочу, чтобы преобразовать формат даты в это yyyy-MM-dd.Как форматировать datetime в "yyyy-MM-dd"

Ниже мой код:

var TimeOfOffer = priceCost.TimeOfOfferChange; 
DateTime ChangesOnTimeOfOfferChange = DateTime.ParseExact(TimeOfOffer, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture); 
priceCostViewmodel.TimeOfOfferChange = priceCost.TimeOfOfferChange; 

Но я получаю исключение

Строка не был признан действительным DateTime.

priceCost.TimeOfOfferChange находится в строке формата, т.е. «9/26/2016 4:38:58 PM» и хочет перейти в строку, а то priceCostViewmodel.TimeOfOfferChange

+0

На самом деле непонятно, какова ваша проблема с форматированием - ваша ошибка связана с * разбором * строки в 'DateTime'. – Filburt

+0

try DateTime.ParseExact (TimeOfOffer, "dd/MM/yyyy HH: mm: ss", CultureInfo.InvariantCulture); вместо этого – Innat3

+1

Похоже, что «кто-то» отвечает за ответы, вместо того, чтобы просить разъяснения или добавлять информацию. Это не так, как работает StackOverflow. – Kilazur

ответ

1

Ваш формат строки и ваш формат даты фактически не совпадение.

Дата строка:

9/26/2016 4:38:58 PM 

в формате:

M/dd/yyyy h:mm:ss tt 

Таким образом, вам нужно:

DateTime.ParseExact(TimeOfOffer, "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture) 

На данный момент, если вы хотите результат вФормат, это так просто, как:

var dt = DateTime.ParseExact(TimeOfOffer, "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 
var formatted = dt.ToString("yyyy-MM-dd"); 

Но, я полагаю, что вы на самом деле не необходимость результата как строки, так как вы сравниваете их вместо этого.

0

Вы можете использовать

"дд/MM/YYYY HH: мм: сс аа"

вместо

«дд-ММ-YYYY HH: MM: ss "

1

Это похоже на работу. Вам нужно разобрать строку в том виде, в каком она была поставлена. После того как вы правильно разобрали объект DateTime, вы можете вывести его в любом формате.

string inputFormat = "M/d/yyyy h:m:s tt"; //Use this format for parsing 
string outputFormat = "yyyy-MM-dd"; //Use this format for outputting 

var TimeOfOffer = "9/26/2016 4:38:58 PM"; 
DateTime ChangesOnTimeOfOfferChange = DateTime.ParseExact(TimeOfOffer, inputFormat, CultureInfo.InvariantCulture); 
string output = ChangesOnTimeOfOfferChange.ToString(outputFormat); 
Смежные вопросы