Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
RIO.Time
Synopsis
- data CalendarDiffDays = CalendarDiffDays {}
- class Ord p => DayPeriod p where
- periodFirstDay :: p -> Day
- periodLastDay :: p -> Day
- dayPeriod :: Day -> p
- newtype Day = ModifiedJulianDay {}
- type DayOfMonth = Int
- type MonthOfYear = Int
- type Year = Integer
- data DayOfWeek
- data DiffTime
- data NominalDiffTime
- data UTCTime = UTCTime {
- utctDay :: Day
- utctDayTime :: DiffTime
- newtype UniversalTime = ModJulianDate {}
- data CalendarDiffTime = CalendarDiffTime {}
- data TimeZone = TimeZone {}
- data TimeOfDay = TimeOfDay {}
- data LocalTime = LocalTime {}
- data TimeLocale = TimeLocale {}
- class ParseTime t
- class FormatTime t
- data ZonedTime = ZonedTime {}
- pattern May :: MonthOfYear
- pattern December :: MonthOfYear
- pattern November :: MonthOfYear
- pattern October :: MonthOfYear
- pattern September :: MonthOfYear
- pattern August :: MonthOfYear
- pattern July :: MonthOfYear
- pattern June :: MonthOfYear
- pattern April :: MonthOfYear
- pattern March :: MonthOfYear
- pattern February :: MonthOfYear
- pattern January :: MonthOfYear
- pattern BeforeCommonEra :: Integer -> Year
- pattern CommonEra :: Integer -> Year
- pattern YearMonthDay :: Year -> MonthOfYear -> DayOfMonth -> Day
- formatTime :: FormatTime t => TimeLocale -> String -> t -> String
- fromGregorian :: Year -> MonthOfYear -> DayOfMonth -> Day
- calendarDay :: CalendarDiffDays
- calendarWeek :: CalendarDiffDays
- calendarMonth :: CalendarDiffDays
- calendarYear :: CalendarDiffDays
- scaleCalendarDiffDays :: Integer -> CalendarDiffDays -> CalendarDiffDays
- addDays :: Integer -> Day -> Day
- diffDays :: Day -> Day -> Integer
- periodAllDays :: DayPeriod p => p -> [Day]
- periodLength :: DayPeriod p => p -> Int
- periodFromDay :: DayPeriod p => Day -> (p, Int)
- periodToDay :: DayPeriod p => p -> Int -> Day
- periodToDayValid :: DayPeriod p => p -> Int -> Maybe Day
- isLeapYear :: Year -> Bool
- toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth)
- fromGregorianValid :: Year -> MonthOfYear -> DayOfMonth -> Maybe Day
- showGregorian :: Day -> String
- gregorianMonthLength :: Year -> MonthOfYear -> DayOfMonth
- addGregorianMonthsClip :: Integer -> Day -> Day
- addGregorianMonthsRollOver :: Integer -> Day -> Day
- addGregorianYearsClip :: Integer -> Day -> Day
- addGregorianYearsRollOver :: Integer -> Day -> Day
- addGregorianDurationClip :: CalendarDiffDays -> Day -> Day
- addGregorianDurationRollOver :: CalendarDiffDays -> Day -> Day
- diffGregorianDurationClip :: Day -> Day -> CalendarDiffDays
- diffGregorianDurationRollOver :: Day -> Day -> CalendarDiffDays
- dayOfWeek :: Day -> DayOfWeek
- dayOfWeekDiff :: DayOfWeek -> DayOfWeek -> Int
- firstDayOfWeekOnAfter :: DayOfWeek -> Day -> Day
- weekAllDays :: DayOfWeek -> Day -> [Day]
- weekFirstDay :: DayOfWeek -> Day -> Day
- weekLastDay :: DayOfWeek -> Day -> Day
- secondsToDiffTime :: Integer -> DiffTime
- picosecondsToDiffTime :: Integer -> DiffTime
- diffTimeToPicoseconds :: DiffTime -> Integer
- secondsToNominalDiffTime :: Pico -> NominalDiffTime
- nominalDiffTimeToSeconds :: NominalDiffTime -> Pico
- nominalDay :: NominalDiffTime
- getTime_resolution :: DiffTime
- addUTCTime :: NominalDiffTime -> UTCTime -> UTCTime
- diffUTCTime :: UTCTime -> UTCTime -> NominalDiffTime
- calendarTimeDays :: CalendarDiffDays -> CalendarDiffTime
- calendarTimeTime :: NominalDiffTime -> CalendarDiffTime
- scaleCalendarDiffTime :: Integer -> CalendarDiffTime -> CalendarDiffTime
- minutesToTimeZone :: Int -> TimeZone
- hoursToTimeZone :: Int -> TimeZone
- timeZoneOffsetString' :: Maybe Char -> TimeZone -> String
- timeZoneOffsetString :: TimeZone -> String
- utc :: TimeZone
- midnight :: TimeOfDay
- midday :: TimeOfDay
- makeTimeOfDayValid :: Int -> Int -> Pico -> Maybe TimeOfDay
- timeToDaysAndTimeOfDay :: NominalDiffTime -> (Integer, TimeOfDay)
- daysAndTimeOfDayToTime :: Integer -> TimeOfDay -> NominalDiffTime
- utcToLocalTimeOfDay :: TimeZone -> TimeOfDay -> (Integer, TimeOfDay)
- localToUTCTimeOfDay :: TimeZone -> TimeOfDay -> (Integer, TimeOfDay)
- timeToTimeOfDay :: DiffTime -> TimeOfDay
- pastMidnight :: DiffTime -> TimeOfDay
- timeOfDayToTime :: TimeOfDay -> DiffTime
- sinceMidnight :: TimeOfDay -> DiffTime
- dayFractionToTimeOfDay :: Rational -> TimeOfDay
- timeOfDayToDayFraction :: TimeOfDay -> Rational
- addLocalTime :: NominalDiffTime -> LocalTime -> LocalTime
- diffLocalTime :: LocalTime -> LocalTime -> NominalDiffTime
- utcToLocalTime :: TimeZone -> UTCTime -> LocalTime
- localTimeToUTC :: TimeZone -> LocalTime -> UTCTime
- ut1ToLocalTime :: Rational -> UniversalTime -> LocalTime
- localTimeToUT1 :: Rational -> LocalTime -> UniversalTime
- defaultTimeLocale :: TimeLocale
- iso8601DateFormat :: Maybe String -> String
- rfc822DateFormat :: String
- utcToZonedTime :: TimeZone -> UTCTime -> ZonedTime
- zonedTimeToUTC :: ZonedTime -> UTCTime
- parseTimeM :: (MonadFail m, ParseTime t) => Bool -> TimeLocale -> String -> String -> m t
- parseTimeMultipleM :: (MonadFail m, ParseTime t) => Bool -> TimeLocale -> [(String, String)] -> m t
- parseTimeOrError :: ParseTime t => Bool -> TimeLocale -> String -> String -> t
- readSTime :: ParseTime t => Bool -> TimeLocale -> String -> ReadS t
- readPTime :: ParseTime t => Bool -> TimeLocale -> String -> ReadP t
- getCurrentTime :: MonadIO m => m UTCTime
- getTimeZone :: MonadIO m => UTCTime -> m TimeZone
- getCurrentTimeZone :: MonadIO m => m TimeZone
- getZonedTime :: MonadIO m => m ZonedTime
- utcToLocalZonedTime :: MonadIO m => UTCTime -> m ZonedTime
Documentation
data CalendarDiffDays Source #
Constructors
CalendarDiffDays | |
Instances
class Ord p => DayPeriod p where Source #
The class of types which can be represented as a period of days.
Since: time-1.12.1
The Modified Julian Day is a standard count of days, with zero being the day 1858-11-17.
Constructors
ModifiedJulianDay | |
Fields |
Instances
Data Day | |
Defined in Data.Time.Calendar.Days Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Day -> c Day Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Day Source # toConstr :: Day -> Constr Source # dataTypeOf :: Day -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Day) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Day) Source # gmapT :: (forall b. Data b => b -> b) -> Day -> Day Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Day -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Day -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Day -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Day -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Day -> m Day Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Day -> m Day Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Day -> m Day Source # | |
Enum Day | |
Defined in Data.Time.Calendar.Days | |
Ix Day | |
NFData Day | |
Defined in Data.Time.Calendar.Days | |
Eq Day | |
Ord Day | |
DayPeriod Day | |
type DayOfMonth = Int Source #
Day of month, in range 1 to 31.
type MonthOfYear = Int Source #
Month of year, in range 1 (January) to 12 (December).
Instances
This is a length of time, as measured by a clock.
Conversion functions such as fromInteger
and realToFrac
will treat it as seconds.
For example, (0.010 :: DiffTime)
corresponds to 10 milliseconds.
It has a precision of one picosecond (= 10^-12 s). Enumeration functions will treat it as picoseconds.
Instances
data NominalDiffTime Source #
This is a length of time, as measured by UTC. It has a precision of 10^-12 s.
Conversion functions such as fromInteger
and realToFrac
will treat it as seconds.
For example, (0.010 :: NominalDiffTime)
corresponds to 10 milliseconds.
It has a precision of one picosecond (= 10^-12 s). Enumeration functions will treat it as picoseconds.
It ignores leap-seconds, so it's not necessarily a fixed amount of clock time. For instance, 23:00 UTC + 2 hours of NominalDiffTime = 01:00 UTC (+ 1 day), regardless of whether a leap-second intervened.
Instances
This is the simplest representation of UTC. It consists of the day number, and a time offset from midnight. Note that if a day has a leap second added to it, it will have 86401 seconds.
Constructors
UTCTime | |
Fields
|
Instances
Data UTCTime | |
Defined in Data.Time.Clock.Internal.UTCTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UTCTime -> c UTCTime Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UTCTime Source # toConstr :: UTCTime -> Constr Source # dataTypeOf :: UTCTime -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UTCTime) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UTCTime) Source # gmapT :: (forall b. Data b => b -> b) -> UTCTime -> UTCTime Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r Source # gmapQ :: (forall d. Data d => d -> u) -> UTCTime -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> UTCTime -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime Source # | |
NFData UTCTime | |
Defined in Data.Time.Clock.Internal.UTCTime | |
Eq UTCTime | |
Ord UTCTime | |
Defined in Data.Time.Clock.Internal.UTCTime |
newtype UniversalTime Source #
The Modified Julian Date is the day with the fraction of the day, measured from UT midnight. It's used to represent UT1, which is time as measured by the earth's rotation, adjusted for various wobbles.
Constructors
ModJulianDate | |
Fields |
Instances
data CalendarDiffTime Source #
Constructors
CalendarDiffTime | |
Fields
|
Instances
A TimeZone is a whole number of minutes offset from UTC, together with a name and a "just for summer" flag.
Constructors
TimeZone | |
Fields
|
Instances
Data TimeZone | |
Defined in Data.Time.LocalTime.Internal.TimeZone Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TimeZone -> c TimeZone Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TimeZone Source # toConstr :: TimeZone -> Constr Source # dataTypeOf :: TimeZone -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TimeZone) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TimeZone) Source # gmapT :: (forall b. Data b => b -> b) -> TimeZone -> TimeZone Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TimeZone -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TimeZone -> r Source # gmapQ :: (forall d. Data d => d -> u) -> TimeZone -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> TimeZone -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TimeZone -> m TimeZone Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TimeZone -> m TimeZone Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TimeZone -> m TimeZone Source # | |
Show TimeZone | This only shows the time zone name, or offset if the name is empty. |
NFData TimeZone | |
Defined in Data.Time.LocalTime.Internal.TimeZone | |
Eq TimeZone | |
Ord TimeZone | |
Defined in Data.Time.LocalTime.Internal.TimeZone |
Time of day as represented in hour, minute and second (with picoseconds), typically used to express local time of day.
TimeOfDay 24 0 0
is considered invalid for the purposes of makeTimeOfDayValid
, as well as reading and parsing,
but valid for ISO 8601 parsing in Data.Time.Format.ISO8601.
Constructors
TimeOfDay | |
Instances
Data TimeOfDay | |
Defined in Data.Time.LocalTime.Internal.TimeOfDay Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TimeOfDay -> c TimeOfDay Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TimeOfDay Source # toConstr :: TimeOfDay -> Constr Source # dataTypeOf :: TimeOfDay -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TimeOfDay) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TimeOfDay) Source # gmapT :: (forall b. Data b => b -> b) -> TimeOfDay -> TimeOfDay Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TimeOfDay -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TimeOfDay -> r Source # gmapQ :: (forall d. Data d => d -> u) -> TimeOfDay -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> TimeOfDay -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TimeOfDay -> m TimeOfDay Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TimeOfDay -> m TimeOfDay Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TimeOfDay -> m TimeOfDay Source # | |
Show TimeOfDay | |
NFData TimeOfDay | |
Defined in Data.Time.LocalTime.Internal.TimeOfDay | |
Eq TimeOfDay | |
Ord TimeOfDay | |
Defined in Data.Time.LocalTime.Internal.TimeOfDay |
A simple day and time aggregate, where the day is of the specified parameter, and the time is a TimeOfDay. Conversion of this (as local civil time) to UTC depends on the time zone. Conversion of this (as local mean time) to UT1 depends on the longitude.
Constructors
LocalTime | |
Fields
|
Instances
Data LocalTime | |
Defined in Data.Time.LocalTime.Internal.LocalTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LocalTime -> c LocalTime Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LocalTime Source # toConstr :: LocalTime -> Constr Source # dataTypeOf :: LocalTime -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LocalTime) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LocalTime) Source # gmapT :: (forall b. Data b => b -> b) -> LocalTime -> LocalTime Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LocalTime -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LocalTime -> r Source # gmapQ :: (forall d. Data d => d -> u) -> LocalTime -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> LocalTime -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LocalTime -> m LocalTime Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LocalTime -> m LocalTime Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LocalTime -> m LocalTime Source # | |
Show LocalTime | |
NFData LocalTime | |
Defined in Data.Time.LocalTime.Internal.LocalTime | |
Eq LocalTime | |
Ord LocalTime | |
Defined in Data.Time.LocalTime.Internal.LocalTime |
data TimeLocale Source #
Constructors
TimeLocale | |
Fields
|
Instances
Show TimeLocale | |
Defined in Data.Time.Format.Locale | |
Eq TimeLocale | |
Defined in Data.Time.Format.Locale Methods (==) :: TimeLocale -> TimeLocale -> Bool Source # (/=) :: TimeLocale -> TimeLocale -> Bool Source # | |
Ord TimeLocale | |
Defined in Data.Time.Format.Locale Methods compare :: TimeLocale -> TimeLocale -> Ordering Source # (<) :: TimeLocale -> TimeLocale -> Bool Source # (<=) :: TimeLocale -> TimeLocale -> Bool Source # (>) :: TimeLocale -> TimeLocale -> Bool Source # (>=) :: TimeLocale -> TimeLocale -> Bool Source # max :: TimeLocale -> TimeLocale -> TimeLocale Source # min :: TimeLocale -> TimeLocale -> TimeLocale Source # |
The class of types which can be parsed given a UNIX-style time format string.
Minimal complete definition
class FormatTime t Source #
Minimal complete definition
A local time together with a time zone.
There is no Eq
instance for ZonedTime
.
If you want to compare local times, use zonedTimeToLocalTime
.
If you want to compare absolute times, use zonedTimeToUTC
.
Constructors
ZonedTime | |
Fields |
Instances
Data ZonedTime | |
Defined in Data.Time.LocalTime.Internal.ZonedTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ZonedTime -> c ZonedTime Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ZonedTime Source # toConstr :: ZonedTime -> Constr Source # dataTypeOf :: ZonedTime -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ZonedTime) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ZonedTime) Source # gmapT :: (forall b. Data b => b -> b) -> ZonedTime -> ZonedTime Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ZonedTime -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ZonedTime -> r Source # gmapQ :: (forall d. Data d => d -> u) -> ZonedTime -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> ZonedTime -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ZonedTime -> m ZonedTime Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ZonedTime -> m ZonedTime Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ZonedTime -> m ZonedTime Source # | |
Show ZonedTime | For the time zone, this only shows the name, or offset if the name is empty. |
NFData ZonedTime | |
Defined in Data.Time.LocalTime.Internal.ZonedTime |
pattern May :: MonthOfYear Source #
pattern December :: MonthOfYear Source #
The twelve MonthOfYear
patterns form a COMPLETE
set.
pattern November :: MonthOfYear Source #
pattern October :: MonthOfYear Source #
pattern September :: MonthOfYear Source #
pattern August :: MonthOfYear Source #
pattern July :: MonthOfYear Source #
pattern June :: MonthOfYear Source #
pattern April :: MonthOfYear Source #
pattern March :: MonthOfYear Source #
pattern February :: MonthOfYear Source #
pattern January :: MonthOfYear Source #
pattern BeforeCommonEra :: Integer -> Year Source #
Also known as Before Christ.
Note that Year 1 = 1 CE, and the previous Year 0 = 1 BCE.
CommonEra
and BeforeCommonEra
form a COMPLETE
set.
pattern YearMonthDay :: Year -> MonthOfYear -> DayOfMonth -> Day Source #
Bidirectional abstract constructor for the proleptic Gregorian calendar. Invalid values will be clipped to the correct range, month first, then day.
formatTime :: FormatTime t => TimeLocale -> String -> t -> String Source #
Substitute various time-related information for each %-code in the string, as per formatCharacter
.
The general form is %<modifier><width><alternate><specifier>
, where <modifier>
, <width>
, and <alternate>
are optional.
<modifier>
glibc-style modifiers can be used before the specifier (here marked as z
):
%-z
- no padding
%_z
- pad with spaces
%0z
- pad with zeros
%^z
- convert to upper case
%#z
- convert to lower case (consistently, unlike glibc)
<width>
Width digits can also be used after any modifiers and before the specifier (here marked as z
), for example:
%4z
- pad to 4 characters (with default padding character)
%_12z
- pad with spaces to 12 characters
<alternate>
An optional E
character indicates an alternate formatting. Currently this only affects %Z
and %z
.
%Ez
- alternate formatting
<specifier>
For all types (note these three are done by formatTime
, not by formatCharacter
):
%%
%
%t
- tab
%n
- newline
TimeZone
For TimeZone
(and ZonedTime
and UTCTime
):
%z
- timezone offset in the format
±HHMM
%Ez
- timezone offset in the format
±HH:MM
%Z
- timezone name (or else offset in the format
±HHMM
) %EZ
- timezone name (or else offset in the format
±HH:MM
)
LocalTime
For LocalTime
(and ZonedTime
and UTCTime
and UniversalTime
):
%c
- as
dateTimeFmt
locale
(e.g.%a %b %e %H:%M:%S %Z %Y
)
TimeOfDay
For TimeOfDay
(and LocalTime
and ZonedTime
and UTCTime
and UniversalTime
):
%R
- same as
%H:%M
%T
- same as
%H:%M:%S
%X
- as
timeFmt
locale
(e.g.%H:%M:%S
) %r
- as
time12Fmt
locale
(e.g.%I:%M:%S %p
) %P
- day-half of day from (
amPm
locale
), converted to lowercase,am
,pm
%p
- day-half of day from (
amPm
locale
),AM
,PM
%H
- hour of day (24-hour), 0-padded to two chars,
00
-23
%k
- hour of day (24-hour), space-padded to two chars,
0
-23
%I
- hour of day-half (12-hour), 0-padded to two chars,
01
-12
%l
- hour of day-half (12-hour), space-padded to two chars,
1
-12
%M
- minute of hour, 0-padded to two chars,
00
-59
%S
- second of minute (without decimal part), 0-padded to two chars,
00
-60
%q
- picosecond of second, 0-padded to twelve chars,
000000000000
-999999999999
. %Q
- decimal point and fraction of second, up to 12 second decimals, without trailing zeros.
For a whole number of seconds,
%Q
omits the decimal point unless padding is specified.
UTCTime
and ZonedTime
For UTCTime
and ZonedTime
:
%s
- number of whole seconds since the Unix epoch. For times before
the Unix epoch, this is a negative number. Note that in
%s.%q
and%s%Q
the decimals are positive, not negative. For example, 0.9 seconds before the Unix epoch is formatted as-1.1
with%s%Q
.
DayOfWeek
For DayOfWeek
(and Day
and LocalTime
and ZonedTime
and UTCTime
and UniversalTime
):
%u
- day of week number for Week Date format,
1
(= Monday) -7
(= Sunday) %w
- day of week number,
0
(= Sunday) -6
(= Saturday) %a
- day of week, short form (
snd
fromwDays
locale
),Sun
-Sat
%A
- day of week, long form (
fst
fromwDays
locale
),Sunday
-Saturday
Month
For Month
(and Day
and LocalTime
and ZonedTime
and UTCTime
and UniversalTime
):
%Y
- year, no padding. Note
%0Y
and%_Y
pad to four chars %y
- year of century, 0-padded to two chars,
00
-99
%C
- century, no padding. Note
%0C
and%_C
pad to two chars %B
- month name, long form (
fst
frommonths
locale
),January
-December
%b
,%h
- month name, short form (
snd
frommonths
locale
),Jan
-Dec
%m
- month of year, 0-padded to two chars,
01
-12
Day
For Day
(and LocalTime
and ZonedTime
and UTCTime
and UniversalTime
):
%D
- same as
%m/%d/%y
%F
- same as
%Y-%m-%d
%x
- as
dateFmt
locale
(e.g.%m/%d/%y
) %d
- day of month, 0-padded to two chars,
01
-31
%e
- day of month, space-padded to two chars,
1
-31
%j
- day of year, 0-padded to three chars,
001
-366
%f
- century for Week Date format, no padding. Note
%0f
and%_f
pad to two chars %V
- week of year for Week Date format, 0-padded to two chars,
01
-53
%U
- week of year where weeks start on Sunday (as
sundayStartWeek
), 0-padded to two chars,00
-53
%W
- week of year where weeks start on Monday (as
mondayStartWeek
), 0-padded to two chars,00
-53
Duration types
The specifiers for DiffTime
, NominalDiffTime
, CalendarDiffDays
, and CalendarDiffTime
are semantically
separate from the other types.
Specifiers on negative time differences will generally be negative (think rem
rather than mod
).
NominalDiffTime
and DiffTime
Note that a "minute" of DiffTime
is simply 60 SI seconds, rather than a minute of civil time.
Use NominalDiffTime
to work with civil time, ignoring any leap seconds.
For NominalDiffTime
and DiffTime
:
%w
- total whole weeks
%d
- total whole days
%D
- whole days of week
%h
- total whole hours
%H
- whole hours of day
%m
- total whole minutes
%M
- whole minutes of hour
%s
- total whole seconds
%Es
- total seconds, with decimal point and up to <width> (default 12) decimal places, without trailing zeros.
For a whole number of seconds,
%Es
omits the decimal point unless padding is specified. %0Es
- total seconds, with decimal point and <width> (default 12) decimal places.
%S
- whole seconds of minute
%ES
- seconds of minute, with decimal point and up to <width> (default 12) decimal places, without trailing zeros.
For a whole number of seconds,
%ES
omits the decimal point unless padding is specified. %0ES
- seconds of minute as two digits, with decimal point and <width> (default 12) decimal places.
CalendarDiffDays
For CalendarDiffDays
(and CalendarDiffTime
):
%y
- total years
%b
- total months
%B
- months of year
%w
- total weeks, not including months
%d
- total days, not including months
%D
- days of week
CalendarDiffTime
For CalendarDiffTime
:
%h
- total hours, not including months
%H
- hours of day
%m
- total minutes, not including months
%M
- minutes of hour
%s
- total whole seconds, not including months
%Es
- total seconds, not including months, with decimal point and up to <width> (default 12) decimal places, without trailing zeros.
For a whole number of seconds,
%Es
omits the decimal point unless padding is specified. %0Es
- total seconds, not including months, with decimal point and <width> (default 12) decimal places.
%S
- whole seconds of minute
%ES
- seconds of minute, with decimal point and up to <width> (default 12) decimal places, without trailing zeros.
For a whole number of seconds,
%ES
omits the decimal point unless padding is specified. %0ES
- seconds of minute as two digits, with decimal point and <width> (default 12) decimal places.
fromGregorian :: Year -> MonthOfYear -> DayOfMonth -> Day Source #
Convert from proleptic Gregorian calendar. Invalid values will be clipped to the correct range, month first, then day.
scaleCalendarDiffDays :: Integer -> CalendarDiffDays -> CalendarDiffDays Source #
Scale by a factor. Note that scaleCalendarDiffDays (-1)
will not perfectly invert a duration, due to variable month lengths.
periodAllDays :: DayPeriod p => p -> [Day] Source #
A list of all the days in this period.
Since: time-1.12.1
periodLength :: DayPeriod p => p -> Int Source #
The number of days in this period.
Since: time-1.12.1
periodFromDay :: DayPeriod p => Day -> (p, Int) Source #
Get the period this day is in, with the 1-based day number within the period.
periodFromDay (periodFirstDay p) = (p,1)
Since: time-1.12.1
periodToDay :: DayPeriod p => p -> Int -> Day Source #
Inverse of periodFromDay
.
Since: time-1.12.1
periodToDayValid :: DayPeriod p => p -> Int -> Maybe Day Source #
Validating inverse of periodFromDay
.
Since: time-1.12.1
isLeapYear :: Year -> Bool Source #
Is this year a leap year according to the proleptic Gregorian calendar?
toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth) Source #
Convert to proleptic Gregorian calendar.
fromGregorianValid :: Year -> MonthOfYear -> DayOfMonth -> Maybe Day Source #
Convert from proleptic Gregorian calendar. Invalid values will return Nothing
showGregorian :: Day -> String Source #
Show in ISO 8601 format (yyyy-mm-dd)
gregorianMonthLength :: Year -> MonthOfYear -> DayOfMonth Source #
The number of days in a given month according to the proleptic Gregorian calendar.
addGregorianMonthsClip :: Integer -> Day -> Day Source #
Add months, with days past the last day of the month clipped to the last day. For instance, 2005-01-30 + 1 month = 2005-02-28.
addGregorianMonthsRollOver :: Integer -> Day -> Day Source #
Add months, with days past the last day of the month rolling over to the next month. For instance, 2005-01-30 + 1 month = 2005-03-02.
addGregorianYearsClip :: Integer -> Day -> Day Source #
Add years, matching month and day, with Feb 29th clipped to Feb 28th if necessary. For instance, 2004-02-29 + 2 years = 2006-02-28.
addGregorianYearsRollOver :: Integer -> Day -> Day Source #
Add years, matching month and day, with Feb 29th rolled over to Mar 1st if necessary. For instance, 2004-02-29 + 2 years = 2006-03-01.
addGregorianDurationClip :: CalendarDiffDays -> Day -> Day Source #
Add months (clipped to last day), then add days
addGregorianDurationRollOver :: CalendarDiffDays -> Day -> Day Source #
Add months (rolling over to next month), then add days
diffGregorianDurationClip :: Day -> Day -> CalendarDiffDays Source #
Calendrical difference, with as many whole months as possible
diffGregorianDurationRollOver :: Day -> Day -> CalendarDiffDays Source #
Calendrical difference, with as many whole months as possible.
Same as diffGregorianDurationClip
for positive durations.
dayOfWeekDiff :: DayOfWeek -> DayOfWeek -> Int Source #
dayOfWeekDiff a b = a - b
in range 0 to 6.
The number of days from b to the next a.
weekAllDays :: DayOfWeek -> Day -> [Day] Source #
Returns a week containing the given Day
where the first day is the
DayOfWeek
specified.
Examples:
>>>
weekAllDays Sunday (YearMonthDay 2022 02 21)
[YearMonthDay 2022 2 20 .. YearMonthDay 2022 2 26]
>>>
weekAllDays Monday (YearMonthDay 2022 02 21)
[YearMonthDay 2022 2 21 .. YearMonthDay 2022 2 27]
>>>
weekAllDays Tuesday (YearMonthDay 2022 02 21)
[YearMonthDay 2022 2 15 .. YearMonthDay 2022 2 21]
Since: time-1.12.2
weekFirstDay :: DayOfWeek -> Day -> Day Source #
Returns the first day of a week containing the given Day
.
Examples:
>>>
weekFirstDay Sunday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 20
>>>
weekFirstDay Monday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 21
>>>
weekFirstDay Tuesday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 15
Since: time-1.12.2
weekLastDay :: DayOfWeek -> Day -> Day Source #
Returns the last day of a week containing the given Day
.
Examples:
>>>
weekLastDay Sunday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 26
>>>
weekLastDay Monday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 27
>>>
weekLastDay Tuesday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 21
Since: time-1.12.2
secondsToDiffTime :: Integer -> DiffTime Source #
Create a DiffTime
which represents an integral number of seconds.
picosecondsToDiffTime :: Integer -> DiffTime Source #
Create a DiffTime
from a number of picoseconds.
secondsToNominalDiffTime :: Pico -> NominalDiffTime Source #
Create a NominalDiffTime
from a number of seconds.
Since: time-1.9.1
nominalDiffTimeToSeconds :: NominalDiffTime -> Pico Source #
Get the seconds in a NominalDiffTime
.
Since: time-1.9.1
nominalDay :: NominalDiffTime Source #
One day in NominalDiffTime
.
getTime_resolution :: DiffTime Source #
The resolution of getSystemTime
, getCurrentTime
, getPOSIXTime
.
On UNIX systems this uses clock_getres
, which may be wrong on WSL2.
addUTCTime :: NominalDiffTime -> UTCTime -> UTCTime Source #
addUTCTime a b = a + b
diffUTCTime :: UTCTime -> UTCTime -> NominalDiffTime Source #
diffUTCTime a b = a - b
scaleCalendarDiffTime :: Integer -> CalendarDiffTime -> CalendarDiffTime Source #
Scale by a factor. Note that scaleCalendarDiffTime (-1)
will not perfectly invert a duration, due to variable month lengths.
minutesToTimeZone :: Int -> TimeZone Source #
Create a nameless non-summer timezone for this number of minutes.
hoursToTimeZone :: Int -> TimeZone Source #
Create a nameless non-summer timezone for this number of hours.
timeZoneOffsetString' :: Maybe Char -> TimeZone -> String Source #
Text representing the offset of this timezone, such as "-0800" or "+0400" (like %z
in formatTime), with arbitrary padding.
timeZoneOffsetString :: TimeZone -> String Source #
Text representing the offset of this timezone, such as "-0800" or "+0400" (like %z
in formatTime).
timeToDaysAndTimeOfDay :: NominalDiffTime -> (Integer, TimeOfDay) Source #
Convert a period of time into a count of days and a time of day since midnight. The time of day will never have a leap second.
daysAndTimeOfDayToTime :: Integer -> TimeOfDay -> NominalDiffTime Source #
Convert a count of days and a time of day since midnight into a period of time.
utcToLocalTimeOfDay :: TimeZone -> TimeOfDay -> (Integer, TimeOfDay) Source #
Convert a time of day in UTC to a time of day in some timezone, together with a day adjustment.
localToUTCTimeOfDay :: TimeZone -> TimeOfDay -> (Integer, TimeOfDay) Source #
Convert a time of day in some timezone to a time of day in UTC, together with a day adjustment.
timeToTimeOfDay :: DiffTime -> TimeOfDay Source #
Get the time of day given a time since midnight. Time more than 24h will be converted to leap-seconds.
pastMidnight :: DiffTime -> TimeOfDay Source #
Same as timeToTimeOfDay
.
timeOfDayToTime :: TimeOfDay -> DiffTime Source #
Get the time since midnight for a given time of day.
sinceMidnight :: TimeOfDay -> DiffTime Source #
Same as timeOfDayToTime
.
dayFractionToTimeOfDay :: Rational -> TimeOfDay Source #
Get the time of day given the fraction of a day since midnight.
timeOfDayToDayFraction :: TimeOfDay -> Rational Source #
Get the fraction of a day since midnight given a time of day.
addLocalTime :: NominalDiffTime -> LocalTime -> LocalTime Source #
addLocalTime a b = a + b
diffLocalTime :: LocalTime -> LocalTime -> NominalDiffTime Source #
diffLocalTime a b = a - b
utcToLocalTime :: TimeZone -> UTCTime -> LocalTime Source #
Get the local time of a UTC time in a time zone.
localTimeToUTC :: TimeZone -> LocalTime -> UTCTime Source #
Get the UTC time of a local time in a time zone.
ut1ToLocalTime :: Rational -> UniversalTime -> LocalTime Source #
Get the local time of a UT1 time on a particular meridian (in degrees, positive is East).
localTimeToUT1 :: Rational -> LocalTime -> UniversalTime Source #
Get the UT1 time of a local time on a particular meridian (in degrees, positive is East).
defaultTimeLocale :: TimeLocale Source #
Locale representing American usage.
knownTimeZones
contains only the ten time-zones mentioned in RFC 822 sec. 5:
"UT", "GMT", "EST", "EDT", "CST", "CDT", "MST", "MDT", "PST", "PDT".
Note that the parsing functions will regardless parse "UTC", single-letter military time-zones, and +HHMM format.
iso8601DateFormat :: Maybe String -> String Source #
Construct format string according to ISO-8601.
The Maybe String
argument allows to supply an optional time specification. E.g.:
iso8601DateFormat
Nothing == "%Y-%m-%d" -- i.e.YYYY-MM-DD
iso8601DateFormat
(Just "%H:%M:%S") == "%Y-%m-%dT%H:%M:%S" -- i.e.YYYY-MM-DDTHH:MM:SS
rfc822DateFormat :: String Source #
Format string according to RFC822.
zonedTimeToUTC :: ZonedTime -> UTCTime Source #
Arguments
:: (MonadFail m, ParseTime t) | |
=> Bool | Accept leading and trailing whitespace? |
-> TimeLocale | Time locale. |
-> String | Format string. |
-> String | Input string. |
-> m t | Return the time value, or fail if the input could not be parsed using the given format. |
Parses a time value given a format string.
Missing information will be derived from 1970-01-01 00:00 UTC (which was a Thursday).
Supports the same %-codes as formatTime
, including %-
, %_
and %0
modifiers, however padding widths are not supported.
Case is not significant in the input string.
Some variations in the input are accepted:
%z
%Ez
- accepts any of
±HHMM
or±HH:MM
. %Z
%EZ
- accepts any string of letters, or any of the formats accepted by
%z
. %0Y
- accepts exactly four digits.
%0G
- accepts exactly four digits.
%0C
- accepts exactly two digits.
%0f
- accepts exactly two digits.
For example, to parse a date in YYYY-MM-DD format, while allowing the month
and date to have optional leading zeros (notice the -
modifier used for %m
and %d
):
Prelude Data.Time> parseTimeM True defaultTimeLocale "%Y-%-m-%-d" "2010-3-04" :: Maybe Day Just 2010-03-04
Arguments
:: (MonadFail m, ParseTime t) | |
=> Bool | Accept leading and trailing whitespace? |
-> TimeLocale | Time locale. |
-> [(String, String)] | Pairs of (format string, input string). |
-> m t | Return the time value, or fail if the input could not be parsed using the given format. |
Parses a time value given a list of pairs of format and input. Resulting value is constructed from all provided specifiers.
Arguments
:: ParseTime t | |
=> Bool | Accept leading and trailing whitespace? |
-> TimeLocale | Time locale. |
-> String | Format string. |
-> String | Input string. |
-> t | The time value. |
Parse a time value given a format string. Fails if the input could
not be parsed using the given format. See parseTimeM
for details.
Arguments
:: ParseTime t | |
=> Bool | Accept leading whitespace? |
-> TimeLocale | Time locale. |
-> String | Format string |
-> ReadS t |
Parse a time value given a format string. See parseTimeM
for details.
Arguments
:: ParseTime t | |
=> Bool | Accept leading whitespace? |
-> TimeLocale | Time locale. |
-> String | Format string |
-> ReadP t |
Parse a time value given a format string. See parseTimeM
for details.
getCurrentTime :: MonadIO m => m UTCTime Source #
getCurrentTimeZone :: MonadIO m => m TimeZone Source #
getZonedTime :: MonadIO m => m ZonedTime Source #