BSD-3-Clause licensed by Ashley Yakeley
Maintained by <>
This version can be pinned in stack with:time-,6230

Time, clocks and calendars


Change Log


  • fix module Safe status


  • all modules Safe or Trustworthy
  • fix NFData instances for DiffTime, NominalDiffTime, TimeOfDay
  • add missing Ix, Enum, NFData instances to DayOfWeek, CalendarDiffDays, CalendarDiffTime, Month, Quarter, QuarterOfYear


  • new calendrical type synonyms and abstract constructors
  • new Month type, with appropriate functions
  • new QuarterOfYear and Quarter type, with appropriate functions
  • new functions for working with week-based years
  • new parseTimeMultipleM function for a list of (format, input) pairs
  • add instance Ord DayOfWeek
  • add instance Read DiffTime (and NominalDiffTime)
  • change instance Read UTCTime to allow omitted timezone


  • remove deprecated functions parseTime, readTime, readsTime
  • deprecate iso8601DateFormat
  • parsing: fix %_Q %-Q %_q %-q
  • parsing: fix parsing of BCE years
  • formatting: fix %3ES %3Es
  • change internal members of ParseTime to allow newtype-deriving
  • new functions (aliases) pastMidnight & sinceMidnight


  • documentation fixes


  • add Data and Typeable instance for CalendarDiffDays and CalendarDiffTime
  • “@since” annotations for everything after 1.9
  • fix import issue with GHC 8.6


  • new functions secondsToNominalDiffTime & nominalDiffTimeToSeconds
  • expose FormatTime and ParseTime in Data.Time.Format.Internal


  • new conversion functions timeToDaysAndTimeOfDay & daysAndTimeOfDayToTime
  • new DayOfWeek type
  • new CalendarDiffDays and CalendarDiffTime types
  • new ISO8601 module for ISO 8601 formatting & parsing
  • new addLocalTime, diffLocalTime
  • hide members of FormatTime and ParseTime classes
  • formatting & parsing for diff types (NominalDiffTime, DiffTime, CalendarDiffDays, CalendarDiffTime)
  • formatting: %Ez and %EZ for ±HH:MM format
  • parseTimeM: use MonadFail constraint when supported
  • parsing: reject invalid (and empty) time-zones with %z and %Z
  • parsing: reject invalid hour/minute/second specifiers


  • Fix “show minBound” bug
  • haddock: example for parseTimeM


  • Add “Quick start” documentation


  • Fix behaviour of %Q in format


  • Get building on 32 bit machine


  • Added SystemTime
  • Data.Time.Format: allow padding widths in specifiers for formatting (but not parsing)
  • Test: use tasty, general clean-up
  • Test: separate out UNIX-specific tests, so the others can be run on Windows
  • Clean up haddock.


  • Fix bounds issue in .cabal file


  • Data.Time.Clock.TAI: change LeapSecondTable to LeapSecondMap with Maybe type; remove parseTAIUTCDATFile


  • Get building with earlier GHC versions
  • Set lower bound of base correctly



  • FormatTime, ParseTime, Show and Read instances for UniversalTime
  • diffTimeToPicoseconds
  • this change log


  • Use clock_gettime where available
  • Read and Show instances exported in the same module as their types
  • Fixed bug in fromSundayStartWeekValid
  • Parsing functions now reject invalid dates
  • Various documentation fixes