2011-12-06 15 views
6

Mam aplikacji VB6 starszego typu, który zawiera ten kod:Czy łańcuchy daty w VB6 odnoszą się do kultury maszyny?

Begin VB.Label LblStDate 
      Alignment  = 1 'Right Justify 
      AutoSize  = -1 'True 
      [Blah blah blah....] 
      Top    = 0 
      Width   = 75 
End 

[...] 

LblStDate = Date 

To sprawia, że ​​wyświetlacz etykieta LblStDate bieżąca data. Na moim komputerze etykieta kończy się wyświetlaniem czegoś takiego jak "27/08/2011" (czyli dd/mm/rrrr). Czy jest możliwe, że etykieta wyglądałaby inaczej na maszynie z innej kultury (na przykład wyświetlającej "2011/08/27")?

Odpowiedz

5

Tak, VB6 dokonuje niejawnej konwersji typów, więc w danym przypadku konwertuje typ daty na ciąg, stosując ustawienia regionalne i regionalne użytkownika. Nie należy nigdy polegać na używanym formacie, a daty/godziny są konwertowane na ciąg znaków, dlatego nie należy ich ponownie konwertować (chyba że w kontrolowanych okolicznościach).

Możesz uzyskać ten sam wynik, używając jawnego połączenia CStr(Date).

Powiązane problemy