Pregunta

¿Cómo proceso una fecha que se introduce por el usuario y almacenarlo en la base de datos en un campo de fecha? La fecha se introduce por el usuario mediante un selector de fechas jQuery en un campo de texto.

Aquí hay necesidades específicas que tengo:
1. ¿Cómo se convierte una cadena dd aa mm / / (el jQuery recogió puede producir cualquier formato) a un formato almacenable en la base de datos como un campo de fecha.
2. ¿Cómo obtener la fecha y luego cambiarlo a algo así como "Miércoles 11 Ago, 2.009"?

Estoy usando C # para el backend, pero debería ser capaz de entender el código VB también.

Gracias!

¿Fue útil?

Solución

DateTime.Parse(string) para analizar la cadena a un DateTime que puede a continuación, guardar como un DateTime en la base de datos. Es posible que desee utilizar TryParse como se sugiere en otras respuestas, para asegurar que la cadena suministrada se puede analizar como un DateTime.

Para devolver un DateTime en un formato determinado, puede llamar .ToString () en la fecha y hora y suministrar un formato o utilizar uno de los formatos predefinidos por ejemplo, ToShortDateString()

Otros consejos

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
}

A continuación se muestra una lista de cadenas de formato DateTime: http: // MSDN. microsoft.com/en-us/library/az4se3k1.aspx

Estoy de acuerdo con solución de John Rasch. Lo que la gente a menudo no saben es que también se puede utilizar el método String.Format(...) para dar formato a la fecha (y otros tipos de datos). Para las fechas, es obviamente más conveniente utilizar el método ToString(), desde la fecha ofrece esta funcionalidad, pero otros tipos de datos, probablemente le devolver la dirección del objeto en el ToString().

Así que dan a conseguir su fecha a partir de la base de datos o en algún lugar como objeto DateTime puede hacer lo siguiente:

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

Esto imprimirá exactamente lo que solicitó. La explicación de las diferentes cadenas de formato se puede encontrar aquí .

CDATE (cadena) le dará una fecha real de una cadena, y dateformat (cadena, opción) devolverá una cadena con formato como los estados de opciones -. Longdateformat es una de las opciones que creo que usted está buscando

No importa el formato que analiza sintácticamente el campo 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");

Puede globalmente mantener este formato y utilizarlo

Las respuestas anteriores se compruebe que se trata de una fecha (aunque hago un bloque try catch para hacerlo) Una vez que haya confirmado la cadena a ser una fecha, sólo puede pasarlo a un procedimiento almacenado o ponerlo entre comillas simples y que sea parte de su instrucción de inserción / actualización:

string yourdateString ="5-5-09";

update table set da='" + yourDateString + "' WHERE id=@id
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top