2009-08-11 6 views
1

Как обработать дату, введенную пользователем и сохранить ее в базе данных в поле даты? Дата вводится пользователем с помощью jquery datepicker в текстовом поле.Работа с датами в asp.net

Вот конкретные потребности у меня есть:
1. Как вы преобразующая мм/дд/гг струна (JQuery выбрал может производить любой формат) в формат сохраняемого в базе данных в поле даты.
2. Как получить дату, а затем изменить ее на что-то вроде «Среда, 11 августа 2009 г.»?

Я использую C# для бэкэнд, но я также должен понимать код VB.

Спасибо!

ответ

1

использовать DateTime.Parse(string) для разбора строки до DateTime, которая затем может быть сохранена как DateTime в базе данных. Вы можете использовать TryParse, как предложено в других ответах, чтобы убедиться, что строка, которую вы отправили, может быть проанализирована на DateTime.

Чтобы вернуть DateTime в определенном формате, вы можете вызвать .ToString() в DateTime и supply a format или использовать один из предопределенных форматов, например. ToShortDateString()

+0

Спасибо - это объяснило мне это очень быстро! – stringo0

7
string dateString = "08/11/09"; 
DateTime yourDate; 

if(DateTime.TryParse(dateString, out yourDate)) 
{ 
    // do something with yourDate 
    string output = yourDate.ToString("D"); // sets output to: Tuesday, August 11, 2009 
} 
else 
{ 
    // invalid date entered 
} 

Вот список DateTime строк формата: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

+0

Спасибо за пример! Я медленно понял, что он ответил на обе части, увидев ответ Руси. – stringo0

1

CDate (строка) даст вам точную дату из строки, и DateFormat (строка, опция) возвращает строку, отформатированную в качестве опции states - longdateformat - один из вариантов, которые, как я думаю, вы ищете.

1

Предыдущие ответы будут проверять, что это дата (хотя я сделать trycatch блок- сделать это) После того, как вы подтвердили строку быть дата, вы можете просто передать его в хранимой процедуре или положить его в одинарные кавычки, и сделать его частью вашего заявления/обновления вставки:

string yourdateString ="5-5-09"; 

update table set da='" + yourDateString + "' WHERE [email protected] 
2

Я согласен с решением Джона Раша в. Часто люди не знают, что вы также можете использовать метод String.Format(...) для форматирования даты (и других типов данных). Для дат, очевидно, более удобно использовать метод T oString(), поскольку дата предоставляет такую ​​функциональность, но другие типы данных, вероятно, вернут вам адрес объекта в ToString().

Так дал вам получить дату из базы данных или где-то в качестве объекта DateTime вы можете сделать следующее:

DateTime date = DateTime.Now; //normally would come from somewhere else 

//Wednesday, Aug 11, 2009 <-- what we want to get displayed 
string displayFormat ="dddd, MMM dd, yyyy"; 
string formattedDate = string.Format("{0:" + displayFormat + "}", date); 

Response.Write(formattedDate); 

Это будет точно печатать то, что вы просили. Объяснение различных строк формата можно найти here.

+0

Спасибо за подсказку, что он работает в основном для типа данных даты. – stringo0

1

Независимо от того, какой формат вы разобраны ваш DateTime поле

DateTime dt = DateTime.Now;//*example 
//FormatString for "Wednesday, Aug 11, 2009" is *dddd,MMM dd,yyyy* 
string formattedString = dt.ToString("dddd,MMM dd,yyyy"); 

Вы можете глобально держать этот формат и использовать его

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