User Tools

Site Tools


vba:cast:strtodate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:cast:strtodate [28.04.2017 09:13:38]
yaslaw
vba:cast:strtodate [28.04.2017 09:33:17] (current)
yaslaw
Line 122: Line 122:
 <​Date>​ 30.09.2015 <​Date>​ 30.09.2015
 </​code>​ </​code>​
 +
 +=== Länder Formatchaos ===
 +Ein Datum kann je nach Land unterschiedlich geschrieben werden. Dass kann zu Fehler führen. Nehmen wir das Amerikanische Format MM/DD/YYYY. In der Schweiz und in Deutschland haben wir DD.MM.YYYY. VBA nimmt die Ländereinstellung vom PC-Profil. Wenn der Tag kleiner oder gleich 12 ist, dann haben wir ein Problem. Dann erkennt VBA den Tag als Monat und das Resultat ist Falsch.
 +\\ Als Beispiel der 5. Januar 2017. Im Amerikanischen Format 01/05/2017. cDate mit Schweizer Einstellung macht daraus den 1. Mai 2017.
 +<code vb>'​Einfacher cDate. Der Tag ist Kleinergleich als 12. Das Resultat ist falsch
 +print_r cDate("​01/​05/​2017"​)
 +<​Date>​ 01.05.2017
 +
 +'Wenn die zweite Position über 12 ist, erkennt VBA, dass es sich um den Tag handeln muss
 +print_r cDate("​01/​15/​2017"​)
 +<​Date>​ 15.01.2017
 +
 +
 +'Mit strToDate und einem definierten Format wird das Datum richtig umgesetzt
 +print_r strToDate("​01/​05/​2017",​ "​MM/​DD/​YYYY"​)
 +<​Date>​ 05.01.2017</​code>​
  
 === Unklare Formate === === Unklare Formate ===
vba/cast/strtodate.1493363618.txt.gz · Last modified: 28.04.2017 09:13:38 by yaslaw