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
Last revision Both sides next revision
vba:cast:strtodate [28.04.2017 09:13:38]
yaslaw
vba:cast:strtodate [28.04.2017 09:22:36]
yaslaw
Line 122: Line 122:
 <​Date>​ 30.09.2015 <​Date>​ 30.09.2015
 </​code>​ </​code>​
 +
 +=== abc ===
 +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.txt · Last modified: 28.04.2017 09:33:17 by yaslaw