2015-05-28 5 views
0

Я использую сборщик дат и показываю дату, выбранную в текстовом поле. Формат отображается как 14-05-2015 10:42как преобразовать значение текстового поля в datetime

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

public String GetTimestamp(DateTime value) 
     { 
      return value.ToString("yyyy-MM-dd HH:mm:ss"); 
      //return value.ToString("yyyyMMddHHmmss"); 

     } 

Я объявляю значение строки taskDate = txtDate.Text как я могу преобразовать его в формат DATETIME и передать в этот метод?

Я пробовал несколько методов, таких как parseexact или convert, и он не работает .. он даст мне строчную ошибку.

скрипт для выбора даты

<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#<%=txtDate.ClientID %>").dynDateTime({ 
       showsTime: true, 
       ifFormat: "%Y-%m-%d %H:%M:%S", 
       daFormat: "%l;%M %p, %e %m, %Y", 
       align: "BR", 
       electric: false, 
       singleClick: false, 
       displayArea: ".siblings('.dtcDisplayArea')", 
       button: ".next()" 
      }); 
     }); 
</script> 
+0

_ "Я объявляю строку значений taskDate = txtDate.Text" _ Что это значит? Просто передайте значение из элемента управления выбора даты методу, а затем отобразите возвращаемое значение в TextBox. Если что-то сбивает вас с толку или вы получаете сообщение об ошибке, то отправляйте больше кода (чтобы мы могли видеть, как вы используете вышеупомянутый метод), а также точное сообщение об ошибке. –

+0

Какой у вас формат даты для региональных настроек? –

+0

Испытывали ли вы его на другой машине? –

ответ

0

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

var dt = DateTime.Now; 
var enUS = new CultureInfo("en-US"); 
if(DateTime.TryParseExact(taskDate, "yyyy-MM-dd HH:mm:ss", enUS, DateTimeStyles.None, out dt)) 
{ 

} 

Или

if(DateTime.TryParseExact(taskDate, "yyyy-MM-dd HH:mm:ss", null, DateTimeStyles.None, out dt)) 
{ 

} 

Обновление

Тест: https://dotnetfiddle.net/D0UdiV

+0

Peyman благодарит за комментарий, но его не работает .. он пропустит оператор if. – Handsome

+0

@Handsome, можете ли вы разместить образец значения taskDate? Coz Я тестировал со значением типа «2015-05-28 12:00:00» и работал нормально – Peyman

+0

2015-05-13 11:28:23 - это одно из значений, которое я получаю от выбора даты – Handsome

0

Использование DateTime.TryParse с соответствующей культурой для вашего формата DatePicker строки.

Что-то вроде:

String timeStamp = null; 
DateTime dateValue; 
if (DateTime.TryParse(taskDate, CultureInfo.CreateSpecificCulture("fr-FR"), DateTimeStyles.None, out dateValue)) 
{ 
    timeStamp = GetTimestamp(dateValue); 
} 

... 

Пример: https://dotnetfiddle.net/C44uNo

Или убедитесь, что культура надлежащим образом установить для вашего приложения на глобальном уровне.

+0

пропустит оператор if. Я пробовал этот метод. то, что мне нужно, это проанализировать его, а не пытаться. поэтому, если я вставляю if заявление. его пропустить анализ синтаксического разбора не удастся. любой другой метод может это сделать? – Handsome

+1

Если это не удается, невозможно превратить вашу строку в 'DateTime'. Он не может понять строку из вашего датпикера. Можете ли вы опубликовать пример того, как выглядит строка datepicker? Вы пробовали отлаживать 'txtDate.Text', чтобы увидеть, что на самом деле есть * на самом деле? – kspearrin

+0

Я разместил выше, значение txtDate 14-05-2015 10:42:67 – Handsome

0

Вы должны проверить формат DATETIME на панели управления -> региональные настройки , enter image description here

Смежные вопросы