Frage

Wie verarbeite ich ein Datum, das vom Benutzer eingegeben und in der Datenbank in einem Datumsfeld gespeichert wird? Das Datum wird vom Benutzer mit einem JQuery -Datumspunkt in einem Textfeld eingegeben.

Hier sind spezifische Bedürfnisse, die ich habe:
1. Wie konvertieren Sie eine MM/DD/YY -Zeichenfolge (die ausgewählte JQuery kann ein beliebiges Format erstellen) in ein Format in der Datenbank als Datumsfeld.
2. Wie bekomme ich das Datum und ändere ihn dann in so etwas wie "Mittwoch, 11. August 2009"?

Ich benutze C# für das Backend, aber ich sollte auch VB -Code verstehen können.

Vielen Dank!

War es hilfreich?

Lösung

verwenden DateTime.Parse(string) um die Zeichenfolge zu a zu analysieren DateTime welches dann als a gerettet werden kann DateTime in der Datenbank. Möglicherweise möchten Sie TryParse verwenden, wie dies in anderen Antworten vorgeschlagen wird, um sicherzustellen, dass die mitgelieferte Zeichenfolge an a analysiert werden kann DateTime.

Um eine DateTime in einem bestimmten Format zurückzugeben, können Sie .ToString () im DateTime und aufrufen ein Format liefern oder verwenden Sie eines der vordefinierten Formate z. ToShortDateString()

Andere Tipps

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
}

Hier ist eine Liste von DateTime Formatketten: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

Ich stimme John Raschs Lösung zu. Was die Leute oft nicht wissen, ist, dass Sie das auch verwenden können String.Format(...) Methode zum Formatieren Ihres Datums (und anderer Datentypen). Für Daten ist es offensichtlich bequemer, das t zu verwendenoString() Methode, da das Datum eine solche Funktionalität liefert, andere Datentypen jedoch wahrscheinlich die Adresse des Objekts in der ToString().

Wenn Sie also Ihr Datum vom DB oder irgendwo als DateTime -Objekt erhalten, können Sie Folgendes tun:

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

Dies wird genau drucken, was Sie angefordert haben. Die Erklärung der verschiedenen Formatketten kann gefunden werden hier.

CDate (String) gibt Ihnen ein tatsächliches Datum aus einer Zeichenfolge, und DateFormat (String, Option) gibt eine String zurück, die im Rahmen der Option angegeben ist - LongDateFormat ist eine der Optionen, nach denen Sie suchen.

Egal welches Format Sie Ihr DateTime -Feld analysiert haben

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

Sie können dieses Format global halten und es verwenden

Die vorherigen Antworten prüfen, ob es sich um ein Datum handelt (obwohl ich a mache try catch Block, um es zu tun) Sobald Sie die Zeichenfolge als Datum bestätigt haben, können Sie sie einfach an eine gespeicherte Prozedur übergeben oder in einzelne Zitate einfügen und es Teil Ihrer Einfügung/Aktualisierungsanweisung machen:

string yourdateString ="5-5-09";

update table set da='" + yourDateString + "' WHERE id=@id
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top