Конвертировать строку в дату - PullRequest
2 голосов
/ 21 марта 2012

У меня есть веб-сервис, который получает даты в этом формате дд / мм / гггг.

Я понял, что это сбой, потому что иногда у меня бывают даты, подобные этой 1/1 / 2012.

У меня нет контроля над тем, что получает веб-служба.

Я пытался

    myDate = cDate(myString)

    myDate = Convert.toDatetime(myString)

    myDate = DateTime.ParseExact(myString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None)

    myDate = Convert.ToDateTime(myString.ToString("dd/MM/yyyy"))

Ничего не работает, поэтому есть какой-нибудь элегантный способ сделать это, или я должен разделить и добавить "0", когда это такая дата

Спасибо

Ответы [ 3 ]

4 голосов
/ 21 марта 2012

Это работает:

myDate = DateTime.ParseExact(myString, 
                             "d/M/yyyy", 
                             CultureInfo.InvariantCulture, 
                             DateTimeStyles.None)

Это также работает для «01.02.2012», «21.01.2012», «11.01.2012» и «12.12.2012».

1 голос
/ 21 марта 2012

Как насчет

DateTime date = DateTime.ParseExact(dateAsString, "d/M/yyyy", CultureInfo.InvariantCulture)
0 голосов
/ 06 февраля 2014

ДОСТУП К ДАТЕ SQL ДОСТУПА РЕШЕНО

Преобразование строковой даты для доступа к дате SQL

При попытке выбрать данные из SQL-запроса в моем проекте дата была отформатирована как: 31.01.2014 04:46:54, столбец поля был объявлен как дата-время в базе данных ...

однако, когда я использовал оператор sql fldPlaceOrderDate = # 31/01/2014 04: 46: 54 # Это не вернуло бы никаких строк. Когда я просматриваю колонку в Microsoft Access, она будет отображаться так же. Итак, я пришел к выводу, что в моем проекте vb должна быть ошибка с моим SQL, верно?

Таким образом, я скопировал SQL из моего проекта vb.net в представление sql построителя запросов доступа, и там тоже не было никаких строк. Поэтому я снова создал SQL вручную, используя MS Access Design View. Я отформатировал дату так же, как # 31/01/2014 04: 46: 54 # ... на этот раз она вернула строку и показала, что дата фактически была отформатирована как MM / dd / yy ЧЧ: мм: сс

Так что я попробовал следующее вместо этого в своем проекте

«ВЫБЕРИТЕ fldReference» & VBCRLF & _ "ОТ ТБЛОРДОВ" и VBCRLF & _ "WHERE fldPlaceOrderDate = #" & CDATE ("31/01/2014 04:46:54"). ToString ("ММ / дд / гг чч: мм: сс") & "#;"

Это решило проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...