bin jetzt gerade vernagelt glaube ich. Habe eine Datum im Ami-Format (z.B. „25/mar/2002“) und will das jetzt in Date umwandeln. Mit CDate(„25/mar/2002“) geht´s aber (auf einem deutschen System) in die Hose. Natürlich kann ich das zerlegen und dann „mar“ gegen „märz“ austauschen - muss doch aber einfach gehen. Nur wie?
US Date String
Salü Andreas
US Date String Format ist:
MM / DD / YY
„25/mar/2002“ ist positiv ausgedrückt fantasievoll, aus IT sicht unbrauchbar. Mit String Statmens wie Replace korrigieren ist das einzige was mir in den Sinn kommt…
Grüsse Peter
Hallo Peter,
… wieso? Gib ins Direktfenster ein: ? CDate(#25/mar/2002#) - funktioniert.
Gruß
Uni
US Date String Format ist:
MM / DD / YY„25/mar/2002“ ist positiv ausgedrückt fantasievoll, aus IT
sicht unbrauchbar. Mit String Statmens wie Replace korrigieren
ist das einzige was mir in den Sinn kommt…Grüsse Peter
Hi Uni
Irgendwie habe ich jetzt ein logisches Problem…
Statment 2
… wieso? Gib ins Direktfenster ein: ? CDate(#25/mar/2002#) -
funktioniert.
Statment 1
in jetzt gerade vernagelt glaube ich. Habe eine Datum im Ami-:Format (z.B. „25/mar/2002“) und will das jetzt in Date :umwandeln. Mit CDate(„25/mar/ 2002“) geht´s aber (auf einem :deutschen System) in die Hose.
Gehts jetzt oder nicht? Ich habe nicht behauptet, dass etwas nicht geht . Faul wie ich war habe ich mich nur über den Termininus „US-Date“ Format mokiert…
Also was genau geht oder geht nicht und was soll am Schluss als Resultat vorliegen?
Grüsse Peter
Moin Peter,
vielleicht hab ich mich unverständlich ausgedrückt - also nochmal von vorn:
Ich habe das Datum „25/mar/2002“ in einer STRING-Variablen und will es in ein DATE umwandeln (weil es in ein Datumsfeld einer DB gespeichert werden soll).
Wenn ich ins Direktfenster ? CDate(„25/mar/2002“) eingebe, kriege ich einen Laufzeitfehler (Typen unverträglich) - logisch, weil das Programm auf einem deutschen System läuft und die CDate-Funktion die Ländereinstellungen verwendet und daher statt „Mar“ „März“ erwartet.
Da VB intern aber englisch arbeitet, liegt das Datum ja im Prinzip schon im richtigen Format vor. Denn wenn ich es als Datumsausdruck eingebe (? CDate(#25/mar/2002#)), funktioniert es und wird auf meinem deutschen System als 25.03.2002 ausgegeben. Wenn ich die Ländereinstellung auf USA umstelle , ergibt es 3/25/2002 - also auch richtig. Ist also schon brauchbar!
Fazit: Ich muss auf die wohl eher langsamere Methode ausweichen, einen schon im Ami-Format vorliegenden String erst in einen deutschen umzuwandeln, damit er dann wieder mittels CDate ins (VB-interne) englische umgewandelt wird. Macht irgendwie wenig Sinn, zumal es dann auf Rechnern mit anderen Ländereinstellungen wieder in die Hose geht - weil die ja ein deutsches Datum nicht kennen.
Entschuldige bitte, aber…
Hi Andreas
Also nochmals von vorne:
-
gegeben ist:
„25/mar/2002“ in einer STRING-Variablen -
Ziel:
schreiben des wertes P1 in eine db, in ein feld vom type Date -
Grundsätzlich (basierend auf VB6SP5 / Win2000):
3.1
vb speichert date werte intern als Fliesskommazahlen (double) und nicht englisch.
3.2
Den Ausdruck „mar“ konnte ich mit deutsches Landeseinstellung mit keinem Statemnt als Teil eines Datum definieren. -
Lösungsidee
4.1 String bearbeiten
Funktion mit „Replace“, welchen den vorliegenden String mit der deutschen Monatsbezeinung ersetzt. Über Select Case lassen sich die 12 möglichen Fälle präzise erfassen.
4.2. DB und Middleware
Ev bietet das RDBMS bzw. die Middleware Dir noch funktionen?
4.3 Ländereinstellungen
Rein theoretisch kann unter W2k und XP die Ländereinstellungen dynamisch geändert werden. Wenn dieses einlesen dieses Strings periodisch alle monate vorkommt, so kann vorher die ländereinstellungen auf englisch (us) geändert werden.
Grüsse Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
hallo peter,
3.1
vb speichert date werte intern als Fliesskommazahlen (double)
und nicht englisch.
hab ich doch gar nicht gemeint. ich meinte, es INTERPRETIERT englische ausdrücke richtig … ? CDate(#25/mar/2002#)
3.2
Den Ausdruck „mar“ konnte ich mit deutsches Landeseinstellung
mit keinem Statemnt als Teil eines Datum definieren.
hab ich doch auch nicht gesagt. ist eben ein ami-format.
4.1 String bearbeiten
schon klar …
Ev bietet das RDBMS bzw. die Middleware Dir noch funktionen?
4.3 Ländereinstellungen
nö - ist access.
Rein theoretisch kann unter W2k und XP die Ländereinstellungen
dynamisch geändert werden. Wenn dieses einlesen dieses Strings
periodisch alle monate vorkommt, so kann vorher die
ländereinstellungen auf englisch (us) geändert werden.
wollte eben was haben, was ich in meine library tun kann und das dann auch in allen ländern funktioniert.
fazit: ich mach es erstmal über die replace-arie.
gruß
uni