Domanda

Come faccio ad elaborare una data che viene immesso dall'utente e memorizza nel database in un campo della data? La data viene immesso dall'utente utilizzando un datepicker jQuery in un campo di testo.

Qui ci sono esigenze specifiche che ho:
1. Come si fa a convertire un / gg stringa mm / aa (jQuery raccolse in grado di produrre qualsiasi formato) in un formato memorizzabile nel database come un campo data.
2. Come ottenere la data e poi cambiarlo in qualcosa come "Mercoledì 11 agosto 2009"?

sto usando C # per il back-end, ma dovrei essere in grado di capire il codice VB pure.

Grazie!

È stato utile?

Soluzione

DateTime.Parse(string) per analizzare la stringa in un DateTime che può poi essere salvato come un DateTime nel database. Si consiglia di utilizzare TryParse come suggerito in altre risposte, al fine di garantire che la stringa in dotazione può essere analizzato per un DateTime.

Per restituire un DateTime in un certo formato, è possibile chiamare .ToString () sul DateTime e fornire un formato o utilizzare uno dei formati predefiniti es ToShortDateString()

Altri suggerimenti

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
}

Ecco un elenco di stringhe di formato DateTime: http: // MSDN. microsoft.com/en-us/library/az4se3k1.aspx

Sono d'accordo con la soluzione di John Rasch. Quello che la gente spesso non sanno è che si può anche utilizzare il metodo String.Format(...) per formattare la data (e altri tipi di dati). Per le date è ovviamente più conveniente utilizzare il metodo ToString(), dal momento che la data fornisce tale funzionalità, ma anche altri tipi di dati probabilmente vi indirizzo di ritorno dell'oggetto nel ToString().

Quindi, dato che si ottiene la data dal DB o da qualche parte come oggetto DateTime è possibile effettuare le seguenti operazioni:

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

Questa sarà esattamente stampare ciò che avete richiesto. La spiegazione delle diverse stringhe di formato può essere trovato qui .

CDate (stringa) vi darà una data effettiva da una stringa, e dateformat (stringa, opzionale) restituirà una stringa formattata come afferma opzione -. Longdateformat è una delle opzioni che penso che stai cercando

Non importa quale formato analizzato il vostro 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");

È possibile tenere a livello globale questo formato e usarlo

Le risposte precedenti potranno verificare che si tratta di una data (anche se un blocco try catch per farlo) Dopo aver confermato la stringa ad essere una data, si può semplicemente passare ad una stored procedure o metterlo tra virgolette singole e renderlo parte della vostra dichiarazione di inserimento / aggiornamento:

string yourdateString ="5-5-09";

update table set da='" + yourDateString + "' WHERE id=@id
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top