Type de données date (Visual Basic)

Mise à jour : novembre 2007

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 1 et le 31 décembre 9999 et des heures comprises entre 0:00:00 (minuit) et 23:59:59.9999999. Chaque incrément représente 100 nanosecondes du temps écoulé depuis le 1er janvier de l'an 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 pour contenir des valeurs de date, des valeurs d'heure ou des valeurs d'horodatage.

La valeur par défaut de Date est 0:00:00 (minuit) du 1er janvier 0001.

Pré-requis de format

Vous devez joindre un littéral Date entre des signes dièse (# #). Vous devez spécifier la valeur de date au format M/d/yyyy, par exemple #5/31/1993#. Cette configuration requise est indépendante de vos paramètres régionaux et de vos paramètres de format de date et d'heure.

Cette restriction est due au fait que la signification de votre code ne doit jamais changer en fonction de vos paramètres régionaux avec lesquels votre application est en cours d'exécution. Si vous codez en dur un littéral Date de #3/4/1998# afin qu'il corresponde au 4 mars 1998, cette date sera compilée comme vous le souhaitez dans les paramètres régionaux qui utilisent mm/jj/aaaa. Mais si vous déployez votre application dans plusieurs pays. Dans les paramètres locaux qui utilisent le format jj/mm/aaaa, votre littéral codé en dur compilera sous la forme "3 avril 1998". Dans les paramètres régionaux qui utilisent le format aaaa/mm/jj, le littéral ne sera pas valide (avril 1998, 0003) et entraînera une erreur du compilateur.

Solutions

Pour convertir un littéral Date au format de vos paramètres régionaux ou à un format personnalisé, indiquez le littéral à la Format, fonction, en spécifiant les Formats de date/heure prédéfinis (fonction Format) ou les Formats de date/heure définis par l'utilisateur (fonction Format). C'est ce qu'illustre l'exemple suivant.

MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))

Sinon, vous pouvez utiliser un des constructeurs surchargés de la structure DateTime pour assembler une valeur d'horodatage. L'exemple suivant crée une valeur pour représenter le 31 mai, 1993 à 12:14.

Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)

Format d'heure

Vous pouvez spécifier la valeur d'heure au format 12 heures ou 24 heures, par exemple #1:15:30 PM# ou #13:15:30#. Toutefois, si vous ne spécifiez pas les minutes, ni les secondes, vous devez indiquer s'il s'agit du matin ou de l'après-midi (AM/PM).

Valeurs par défaut de date et d'heure

Si vous n'incluez pas de date dans un littéral de date et d'heure, Visual Basic fixe la partie date de la valeur au 1er janvier 0001. Si vous n'incluez pas d'heure dans un littéral de date et d'heure, Visual Basic fixe la partie heure à minuit (00:00:00).

Conversions de type

Si vous convertissez une valeur de type Date en type String, Visual Basic restitue la date en se basant sur le format de date courte spécifié par les paramètres régionaux d'exécution, et restitue l'heure en se basant sur le 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, gardez à l'esprit que les types date/heure d'autres environnements ne sont pas compatibles avec le type Date Visual Basic. Si vous passez un argument date/heure à un tel composant, déclarez-le comme type de données Double et non comme Date 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 aucun caractère de type de littéral ou caractère de type d'identificateur. Toutefois, le compilateur assimile les littéraux compris entre signes dièse (# #) en tant que Date.

  • Type Framework. Le type correspondant dans le .NET Framework est la structure System.DateTime.

Exemple

Une variable ou constante de 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#

Voir aussi

Concepts

Utilisation efficace des types de données

Modifications des types de données pour les utilisateurs de Visual Basic 6.0

Référence

Liste des types de données (Visual Basic)

System.DateTime

Fonctions de conversion de types de données

Liste des conversions