[Visual Studio 2008] DateTimePicker in MS Access-Datumsformat wandeln

Ahnung habe ich davon eigentlich auch nicht wirklich.

Ich habe das immer so gelöst:

Visual Basic:
datum = "02.05.2011"
variable = Format(datum, "mm") & "/" & Format(datum, "dd") & "/" & Format(datum, "yyyy")
'variable enthält dann als Wert das Datum so formatiert: "05/02/2011"

ist vielleicht etwas umständlich aber bei mir hat es so zumindest immer geklappt (allerding nie in C#).
 
Datum-Objekt als String mit en-US-Formatierung ausgeben:
C#:
using System.Globalization;
// Zuerst CultureInfo-Objekt für gewünschte Sprache erstellen
CultureInfo en_US = new CultureInfo("en-US");
// Datum aus DateTimePicker als String ausgeben
String Datumstext = DateTimePicker1.Value.ToString(en_US);
 
Zuletzt bearbeitet:
Ah okay...
In C# bzw. mein VS2008 bietet mir kein CultureInfo an.
Es gibt nur einen CultureInfoConverter...Der Konstruktor akzeptiert aber keinen Übergabeparameter...

Muss ich noch ne dll oder so einbinden?
 
Des Rätsels Lösung ist nun folgendes...
Code:
//Für den Namespace
using System.Globalization;

//Angabe des Datumsformat
CultureInfo en_US = new CultureInfo("en-US");

//Konvertierung des Datums in einen String. Zusätzlich wurde die Zeit durch .ShortDatePattern abgeschnitten.
String dateFromDateTimeGueltigkeitT2ShortDate = dateTimeGueltigkeitT2.Value.ToString(en_US.DateTimeFormat.ShortDatePattern);

//Damit an die Datenbank keine Punkte geschickt werden die GUI aber ein Punktgetrenntes Datum hat noch ein Replace
dateFromDateTimeGueltigkeitT2ShortDate = dateFromDateTimeGueltigkeitT2ShortDate.Replace(".", "/");
 
Stimmt, du hast Recht, es werden Punkte anstatt Schrägstriche verwendet. Ich habe diese Seite gefunden, die erklärt warum das so ist: die ToString-Methode der DateTime-Klasse nimmt als Trennzeichen das Zeichen welches in der DateSeparator-Eigenschaft der Kultur angegeben ist. Da aber keine bestimmte Kultur angegeben ist (sondern lediglich der String "M/dd/yyyy" übergeben wurde), wird die Standard-Kultur verwendet, welche deutsch ist.
Um es richtig zu machen musst du der ToString-Methode als auch noch sagen, welche Sprache sie verwenden soll:
C#:
CultureInfo en_US = new CultureInfo("en-US");
String datumstext = DateTimePicker1.Value.ToString(en_US.DateTimeFormat.ShortDatePattern, en_US);
 

Neue Beiträge

Zurück