Type de données date (Visual Basic)
Contient des valeurs sous la forme IEEE 64 bits (8 octets) qui représentent des dates comprises entre le 1er janvier de l'année 0001 et le 31 décembre de l'année 9999 et des heures comprises entre de 0:00:00 (minuit) et 23:59:59,9999999. Chaque incrément représente 100 nanosecondes de durée calendaire depuis le début du 1er janvier de l’année 1 du calendrier grégorien. La valeur maximale représente 100 nanosecondes avant le début du 1er janvier de l'année 10 000.
Notes
Utilisez le type de données Date
comme conteneur de valeurs de date, de valeurs d'heure ou de valeurs de date et d'heure.
La valeur par défaut de Date
est 0:00:00 (minuit) le 1er janvier 0001.
Vous pouvez obtenir les date et heure actuelles à partir de la classe DateAndTime.
Exigences relatives au format
Vous devez placer un littéral Date
entre des signes dièse (# #
). Vous devez spécifier la valeur de date au format M/j/aaaa, par exemple #5/31/1993#
, ou aaaa-MM-jj, par exemple #1993-5-31#
. Vous pouvez utiliser des barres obliques quand vous spécifiez l'année en premier. Cette exigence est indépendante de vos paramètres régionaux et des paramètres de format de date et d’heure de votre ordinateur.
Cette restriction tient au fait que la signification de votre code ne doit jamais changer en fonction des paramètres régionaux dans lesquels votre application s'exécute. Supposez que vous codez en dur un littéral Date
égal à #3/4/1998#
et qu'il doit correspondre au 4 mars 1998. Dans des paramètres régionaux qui utilisent le format mm/jj/aaaa, la date 3/4/1998 est compilée comme vous le souhaitez. Supposons toutefois que vous déployiez votre application dans de nombreux pays/nombreuses régions. Dans des paramètres régionaux qui utilisent le format jj/mm/aaaa, votre littéral codé en dur sera compilé en tant que 3 avril 1998. Dans des paramètres régionaux qui utilisent le format aaaa/mm/jj, le littéral sera non valide (avril 1998, 0003) et provoquera une erreur du compilateur.
Solutions de contournement
Pour convertir un littéral Date
dans le format de vos paramètres régionaux ou dans un format personnalisé, fournissez le littéral à la fonction Format, en spécifiant un format de date prédéfini ou défini par l'utilisateur. l’exemple ci-dessous illustre ce cas de figure.
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
Vous pouvez également utiliser un des constructeurs surchargés de la structure DateTime pour assembler une valeur de date et d'heure. L'exemple suivant crée une valeur pour représenter le 31 mai 1993 à 12h14.
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
Format d'heure
Vous pouvez spécifier la valeur d'heure dans un format de 12 heures ou de 24 heures, par exemple #1:15:30 PM#
ou #13:15:30#
. Toutefois, si vous ne spécifiez pas les minutes ou les secondes, vous devez spécifier AM ou PM.
Valeurs par défaut de date et d'heure
Si vous n'incluez pas de date dans un littéral de date/heure, Visual Basic définit la partie date de la valeur sur le 1er janvier 0001. Si vous n'incluez pas d'heure dans un littéral de date/heure, Visual Basic définit la partie heure de la valeur sur le début de la journée, c'est-à-dire minuit (0:00:00).
Conversions de type
Si vous convertissez une valeur Date
vers le type String
, Visual Basic restitue la date en fonction du format de date courte spécifié par les paramètres régionaux d'exécution, et restitue l'heure en fonction du format d'heure (12 heures ou 24 heures) spécifié par les paramètres régionaux d'exécution.
Conseils de programmation
Considérations sur l'interopérabilité. Si vous utilisez des composants non écrits pour le .NET Framework, tels que des objets Automation ou COM, n'oubliez pas que les types de date et d'heure utilisés dans les autres environnements ne sont pas compatibles avec le type
Date
de Visual Basic. Si vous transmettez un argument de date et d’heure à un tel composant, déclarez-le en tant queDouble
et nonDate
dans votre nouveau code Visual Basic, et utilisez les méthodes de conversion DateTime.FromOADate et DateTime.ToOADate.Caractères de type.
Date
n’a pas de caractère de type littéral ni de caractère de type identificateur. Toutefois, le compilateur traite les littéraux compris entre des signes dièse (# #
) en tant queDate
.Type .NET Framework. Le type correspondant dans le .NET Framework est la structure System.DateTime.
Exemple
Une variable ou une constante du type de données Date
contient à la fois la date et l'heure. L'exemple suivant illustre ce comportement.
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#