Как сделать конвертацию. Тонатетим или дата проанализации в C #, но только получить DD / MM / Yyyy в C # 2.0?

StackOverflow https://stackoverflow.com/questions/4255490

  •  27-09-2019
  •  | 
  •  

Вопрос

Как тема говорит, у меня есть строка, как

string CreatedDate = "12/09/2010"

И я хочу передать его в веб-метод, который принимает только это как dateTime

customer.dateCreated = Convert.ToDateTime(CreatedDate);

Естественно, он добавляет HH: MM: SS После даты, которую веб-сервис не принимает так, как я могу сохранить дату в коротком формате, когда я преобразую ее на дату?

заранее спасибо

Это было полезно?

Решение

Предполагая, что у вас есть:

void WebMethod(DateTime date);

и

string dateString = "12/09/2010";

Тогда делай следующий:

DateTime date;
if (DateTime.TryParseExact(dateString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
    WebMethod(date);
}
else
{
    // raise an error - specified date is not in specified format
}

Примечание:

date.Hour // 0
date.Minute // 0
date.Seconds // 0

В противном случае, если у вас есть DateTime объект и WebMethod(string date) Где дата должна быть в указанном формате, то:

DateTime date = ..;
WebMethod(date.ToString("dd/MM/yyyy"));

Другие советы

А. DateTime значение ничего не знает, что его форматирование (и действительно это не должен). Похоже, ваш веб-сервис сломан, если она не принимает стандартную форматирование даты / времени. Какова реализация веб-сервиса? Это «клиент» автогенерированный прокси-класс?

DateTime имеет .Date Свойство, которое положивает информацию о времени.

У WebService принимает дату как только «12/09/2010»? Как правило, Webservice должен следовать за рекомендациями здесьXML Schema Part 2: DataTypes Второе издание

Который является форматом UTC. С использованием:

DateTime.ParseExact(value, "ddd MMM dd HH:mm:ss zz00 yyyy", null);

решает проблему в большинстве случаев.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top