Une DateTime en F# est un objet immuable qui contient à la fois des informations de date et d'heure. On peut accéder à ces informations de date et d'heure via ses propriétés intégrées.
Pour manipuler une DateTime, on peut appeler l'une de ses méthodes. Comme les valeurs DateTime ne peuvent jamais changer une fois qu'elles ont été définies, toutes les méthodes qui semblent modifier une DateTime renvoient en réalité une nouvelle DateTime.
Pour comparer des instances de DateTime, on peut utiliser les opérateurs de comparaison par défaut (<, >, etc.). On peut récupérer la date (et l'heure) actuelles via la propriété DateTime.Now.
Un aspect important des dates en F# est qu'elles dépendent de la culture. Ainsi, toute méthode de DateTime qui manipule des strings dépend de la culture courante. Cela inclut la méthode DateTime.Parse() qui analyse une string en DateTime, ainsi que la méthode ToString() de la classe DateTime, qui convertit une DateTime en string.
Quand on utilise une DateTime dans un appel à sprintf, au lieu de convertir manuellement la DateTime en string et d'utiliser l'espace réservé %s, on peut utiliser l'espace réservé %O, qui convertit automatiquement la DateTime en sa valeur string.