Вопрос

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

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

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

Спасибо!

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

Решение

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

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

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

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

Я согласен с решением Джона Раша.Чего люди часто не знают, так это того, что вы также можете использовать 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);

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

cDate(string) предоставит вам фактическую дату из строки, а dateformat(string,option) вернет строку, отформатированную так, как указано в параметре. Longdateformat — это один из вариантов, который, я думаю, вы ищете.

Независимо от того, в каком формате вы проанализировали поле 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");

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

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

string yourdateString ="5-5-09";

update table set da='" + yourDateString + "' WHERE id=@id
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top