Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data types for representing different date and time-related information.
Internally, the types Int
and Int64
are used to
represent everything. These are used even when negative
values are not appropriate and even if a smaller fixed-size
integer could hold the information. The only cases when
Int64
is used are when it is neccessary to represent values
with numbers 2^29
or higher. These are typically fields
that represent nanoseconds.
Unlike the types in the venerable time
library, the types
here do not allow the user to work with all dates. Since this
library uses fixed-precision integral values instead of Integer
,
all of the usual problems with overflow should be considered. Notably,
PosixTime
and TaiTime
can only be used to represent time between the years
1680 and 2260. All other types in this library correctly represent time
a million years before or after 1970.
The vector unbox instances, not yet available, will store
data in a reasonably compact manner. For example, the instance
for Day
has three unboxed vectors: Int
for the year, Int8
for the month, and Int8
for the day. This only causes
corruption of data if the user is trying to use out-of-bounds
values for the month and the day. Users are advised to not
use the data types provided here to model non-existent times.
- newtype Day = Day {}
- newtype Days = Days {}
- newtype DayOfWeek = DayOfWeek {
- getDayOfWeek :: Int
- newtype DayOfMonth = DayOfMonth {
- getDayOfMonth :: Int
- newtype DayOfYear = DayOfYear {
- getDayOfYear :: Int
- newtype Month = Month {}
- newtype Months = Months {}
- newtype Year = Year {}
- newtype Offset = Offset {}
- newtype TaiTime = TaiTime {
- getTaiTime :: Int64
- newtype PosixTime = PosixTime {}
- newtype DayOfWeekMatch a = DayOfWeekMatch {
- getDayOfWeekMatch :: Vector a
- newtype MonthMatch a = MonthMatch {
- getMonthMatch :: Vector a
- newtype UnboxedMonthMatch a = UnboxedMonthMatch {}
- newtype Nanoseconds = Nanoseconds {}
- data SubsecondPrecision
- data Date = Date {}
- data OrdinalDate = OrdinalDate {}
- data MonthDate = MonthDate {}
- data Datetime = Datetime {
- datetimeDate :: !Date
- datetimeTime :: !TimeOfDay
- data OffsetDatetime = OffsetDatetime {}
- data TimeOfDay = TimeOfDay {
- timeOfDayHour :: !Int
- timeOfDayMinute :: !Int
- timeOfDayNanoseconds :: !Int64
- data UtcTime = UtcTime {
- utcTimeDate :: !Day
- utcTimeNanoseconds :: !Int64
- data DatetimeFormat a = DatetimeFormat {
- datetimeFormatDateSeparator :: !(Maybe a)
- datetimeFormatSeparator :: !(Maybe a)
- datetimeFormatTimeSeparator :: !(Maybe a)
- data OffsetFormat
- data DatetimeLocale a = DatetimeLocale {}
- data MeridiemLocale a = MeridiemLocale {
- meridiemLocaleAm :: !a
- meridiemLocalePm :: !a
Documentation
A duration of days
newtype DayOfMonth Source #
TAI time with nanosecond resolution.
POSIX time with nanosecond resolution.
newtype DayOfWeekMatch a Source #
newtype MonthMatch a Source #
newtype UnboxedMonthMatch a Source #
newtype Nanoseconds Source #
data SubsecondPrecision Source #
SubsecondPrecisionAuto | Rounds to second, millisecond, microsecond, or nanosecond |
SubsecondPrecisionFixed !Int | Specify number of places after decimal |
A date as represented by the Gregorian calendar.
data OrdinalDate Source #
A date as represented by the Gregorian calendar and a time of day.
Datetime | |
|
data OffsetDatetime Source #
A time of day, including the possibility of leap seconds.
TimeOfDay | |
|
UtcTime | |
|
data DatetimeFormat a Source #
DatetimeFormat | |
|
Eq a => Eq (DatetimeFormat a) Source # | |
Ord a => Ord (DatetimeFormat a) Source # | |
Read a => Read (DatetimeFormat a) Source # | |
Show a => Show (DatetimeFormat a) Source # | |
data OffsetFormat Source #
OffsetFormatColonOff |
|
OffsetFormatColonOn |
|
OffsetFormatSecondsPrecision |
|
OffsetFormatColonAuto |
|
data DatetimeLocale a Source #
DatetimeLocale | |
|
data MeridiemLocale a Source #
MeridiemLocale | |
|
Eq a => Eq (MeridiemLocale a) Source # | |
Ord a => Ord (MeridiemLocale a) Source # | |
Read a => Read (MeridiemLocale a) Source # | |
Show a => Show (MeridiemLocale a) Source # | |