Az F#-ban a DateTime egy megváltoztathatatlan objektum, amely egyszerre tartalmazza a dátum- és az időinformációt. A dátum- és időinformáció a beépített tulajdonságain keresztül érhető el.
Egy DateTime értéket úgy módosíthatsz, hogy meghívod az egyik metódusát. Mivel a DateTime értékek a definiálásuk után soha nem változnak meg, minden metódus, amely úgy tűnik, hogy módosítja a DateTime-ot, valójában egy új DateTime-ot ad vissza.
A DateTime példányok összehasonlításához használhatod az alapértelmezett összehasonlító operátorokat (<, >, stb.). Az aktuális dátumot (és időt) a DateTime.Now tulajdonságon keresztül kérdezheted le.
Az F# dátumainak egyik fontos jellemzője, hogy a kultúrától függenek. Emiatt minden olyan DateTime-metódus, amely string értékekkel foglalkozik, az aktuális kultúrától függ. Ide tartozik a DateTime.Parse() metódus, amely egy string értéket DateTime értékké alakít, valamint a DateTime osztály ToString() metódusa, amely egy DateTime értéket string értékké alakít.
Amikor egy DateTime értéket sprintf hívásban használsz, ahelyett hogy kézzel string értékké alakítanád, és a %s string-helyőrzőt használnád, használhatod a %O helyőrzőt, amely automatikusan string értékké alakítja a DateTime-ot.