Pergunta

Como processe uma data de entrada pelo usuário e o armazenamento no banco de dados em um campo de data? A data é inserida pelo usuário usando um JQuery DatePicker em um campo de texto.

Aqui estão as necessidades específicas que tenho:
1. Como você converte uma string mm/dd/yy (o jQuery escolhido pode produzir qualquer formato) em um formato armazenável no banco de dados como um campo de data.
2. Como obter a data e depois alterá -la para algo como "Quarta -feira, 11 de agosto de 2009"?

Estou usando C# para o back -end, mas também devo entender o código VB.

Obrigado!

Foi útil?

Solução

usar DateTime.Parse(string) para analisar a corda para um DateTime que pode então ser salvo como um DateTime no banco de dados. Você pode querer usar o Tryparse, conforme sugerido em outras respostas, para garantir que a corda fornecida possa ser analisada a um DateTime.

Para retornar um tempo de dados em um determinado formato, você pode ligar para .toString () no DateTime e Forneça um formato ou use um dos formatos predefinidos, por exemplo, ToShortDateString()

Outras dicas

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
}

Aqui está uma lista de DateTime Strings de formato: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

Eu concordo com a solução de John Rasch. O que as pessoas geralmente não sabem é que você também pode usar o String.Format(...) Método para formatar sua data (e outros tipos de dados). Para datas, é obviamente mais conveniente usar o ToString() método, já que a data fornece essa funcionalidade, mas outros tipos de dados provavelmente devolverão o endereço do objeto no ToString().

Portanto, considerando que você obtém sua data do banco de dados ou em algum lugar como objeto DateTime, você pode fazer o seguinte:

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);

Isso imprimirá exatamente o que você solicitou. A explicação das diferentes seqüências de formatos pode ser encontrada aqui.

O CDATE (String) fornecerá uma data real de uma string, e o DateFormat (String, Opção) retornará uma string formatada à medida que a opção estados - LongDateFormat é uma das opções que eu acho que você está procurando.

Não importa qual formato você analisou seu campo de data e hora

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

Você pode manter este formato globalmente e usá -lo

As respostas anteriores verificarão para ver se é uma data (embora eu faça um try catch bloco para fazê -lo) Depois de confirmar que a string é uma data, basta passá -la para um procedimento armazenado ou colocá -lo em citações únicas e fazê -lo parte da sua instrução Inserir/Atualizar:

string yourdateString ="5-5-09";

update table set da='" + yourDateString + "' WHERE id=@id
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top