Format de date Système : Peux t'on le changer ? [Résolu]

Signaler
Messages postés
18
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
26 juin 2008
-
Messages postés
18
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
26 juin 2008
-
Bonjour à toutes et à tous

J'ai une question précise concernant le format des dates en vb.
J'ai conçu une appli d'Agenda. Elle me permet de stocker des données liées à des dates.

L'appli utilise un objet "Calendrier". Cette appli fonctionne parfaitement sous windows Xp, mais j'ai pu constater un plantage très méchant sous windows 98.

Après investigations, j'ai constaté que le pc sous windows 98 possédait un formatage de date sur 6 caractères (jj/mm/aa) tandis que le pc sous windows Xp possédait un formatage de date sur 8 caractères (jj/mm/aaaa)

Le changement manuel de ce format permet un fonctionnement correct de l'application. En effet, l'objet vb ne pouvait pas gérer les dates sur 6 (Pour infos, il transformait 2004 en 41...)

Pour ne plus avoir de soucis, j'aimerais forcer ce format de date au lancement de mon appli.

Mais comment faire ????

Merci d'avance pour tout élément de réponse ou proposition éventuelle de correction...

Arcanis

4 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
26
Private Const LOCALE_SSHORTDATE = &H1F

Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long

Private Declare Function SetLocaleInfo Lib "kernel32" Alias "LocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean

Private Sub Command1_Click()
Dim sReturn As String
Dim r As Long
Dim LCID As Long
LCID = GetSystemDefaultLCID()
r = GetLocaleInfo(LCID, LOCALE_SSHORTDATE, sReturn, Len(sReturn))
If r Then
sReturn = Space$(r)
r = GetLocaleInfo(LCID, LOCALE_SSHORTDATE, sReturn, Len(sReturn))
If r Then
If Left$(sReturn, r - 1) <> "dd/MM/yyyy" Then
Call SetLocaleInfo(LCID, LOCALE_SSHORTDATE, "dd/MM/yyyy")
End If
End If
End If
End Sub

Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
18
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
26 juin 2008

:) Merci beaucoup Daniel.
C'est précisement ce que je recherchais.
Parfait !!!

Arcanis
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
7
labout

Il suffit de paramétrer dans le panneau de configuration
le format date dd/mm/yyyy
ou sous Vb d'utiliser le format(date,"dd/mm/yy")
@+
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
26
pour retrouver les paramètres systeme, cherche du côté de
GetSystemInfo et pour les modifier avec SetSystemInfo

Daniel