Как сделать Convert.ToDateTime или разобрать дату в C #, но получить только дд / мм / гггг в C # 2.0? - PullRequest
1 голос
/ 23 ноября 2010

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

string CreatedDate = "12/09/2010"

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

customer.dateCreated = Convert.ToDateTime(CreatedDate);

естественно, это добавляет чч: мм: сс после даты, которую веб-служба не принимает, так как я могу сохранить дату в коротком формате при преобразовании ее в дату?

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

Ответы [ 4 ]

2 голосов
/ 23 ноября 2010
Значение

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

1 голос
/ 23 ноября 2010

Принимает ли WebService дату только как «12/09/2010»? Обычно веб-сервис должен следовать рекомендациям здесь XML-схема, часть 2: типы данных, второе издание

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

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

решает проблему чаще всего.

1 голос
/ 23 ноября 2010

Предположим, у вас есть:

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"));
1 голос
/ 23 ноября 2010

DateTime имеет свойство .Date, которое удаляет информацию о времени.

...