Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
class FormatTime t Source
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
%_z
%0z
%^z
%#z
<width>
Width digits can also be used after any modifiers and before the specifier (here marked as z
), for example:
%4z
%_12z
<alternate>
An optional E
character indicates an alternate formatting. Currently this only affects %Z
and %z
.
%Ez
<specifier>
For all types (note these three are done by formatTime
, not by formatCharacter
):
%%
%
%t
%n
TimeZone
For TimeZone
(and ZonedTime
and UTCTime
):
%z
±HHMM
%Ez
±HH:MM
%Z
±HHMM
)%EZ
±HH:MM
)LocalTime
For LocalTime
(and ZonedTime
and UTCTime
and UniversalTime
):
%c
dateTimeFmt
locale
(e.g. %a %b %e %H:%M:%S %Z %Y
)TimeOfDay
For TimeOfDay
(and LocalTime
and ZonedTime
and UTCTime
and UniversalTime
):
%R
%H:%M
%T
%H:%M:%S
%X
timeFmt
locale
(e.g. %H:%M:%S
)%r
time12Fmt
locale
(e.g. %I:%M:%S %p
)%P
amPm
locale
), converted to lowercase, am
, pm
%p
amPm
locale
), AM
, PM
%H
00
- 23
%k
0
- 23
%I
01
- 12
%l
1
- 12
%M
00
- 59
%S
00
- 60
%q
000000000000
- 999999999999
.%Q
%Q
omits the decimal point unless padding is specified.UTCTime
and ZonedTime
For UTCTime
and ZonedTime
:
%s
%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
1
(= Monday) - 7
(= Sunday)%w
0
(= Sunday) - 6
(= Saturday)%a
snd
from wDays
locale
), Sun
- Sat
%A
fst
from wDays
locale
), Sunday
- Saturday
Day
For Day
(and LocalTime
and ZonedTime
and UTCTime
and UniversalTime
):
%D
%m/%d/%y
%F
%Y-%m-%d
%x
dateFmt
locale
(e.g. %m/%d/%y
)%Y
%0Y
and %_Y
pad to four chars%y
00
- 99
%C
%0C
and %_C
pad to two chars%B
fst
from months
locale
), January
- December
%b
, %h
snd
from months
locale
), Jan
- Dec
%m
01
- 12
%d
01
- 31
%e
1
- 31
%j
001
- 366
%f
%0f
and %_f
pad to two chars%V
01
- 53
%U
sundayStartWeek
), 0-padded to two chars, 00
- 53
%W
mondayStartWeek
), 0-padded to two chars, 00
- 53
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
%d
%D
%h
%H
%m
%M
%s
%Es
%Es
omits the decimal point unless padding is specified.%0Es
%S
%ES
%ES
omits the decimal point unless padding is specified.%0ES
CalendarDiffDays
For CalendarDiffDays
(and CalendarDiffTime
):
%y
%b
%B
%w
%d
%D
CalendarDiffTime
For CalendarDiffTime
:
%h
%H
%m
%M
%s
%Es
%Es
omits the decimal point unless padding is specified.%0Es
%S
%ES
%ES
omits the decimal point unless padding is specified.%0ES
:: (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. 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
±HHMM
or ±HH:MM
.%Z
%z
.%0Y
%0G
%0C
%0f
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
:: 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.
:: 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.
:: 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.
:: ParseTime t | |
=> TimeLocale | Time locale. |
-> String | Format string. |
-> String | Input string. |
-> Maybe t | The time value, or |
Deprecated: use "parseTimeM True" instead
:: ParseTime t | |
=> TimeLocale | Time locale. |
-> String | Format string. |
-> String | Input string. |
-> t | The time value. |
Deprecated: use "parseTimeOrError True" instead
:: ParseTime t | |
=> TimeLocale | Time locale. |
-> String | Format string |
-> ReadS t |
Deprecated: use "readSTime True" instead
The class of types which can be parsed given a UNIX-style time format string.
data TimeLocale Source
TimeLocale | |
Fields |
Eq TimeLocale | |
Defined in Data.Time.Format.Locale | |
Ord TimeLocale | |
Defined in Data.Time.Format.Locale Methodscompare :: TimeLocale -> TimeLocale -> Ordering (<) :: TimeLocale -> TimeLocale -> Bool (<=) :: TimeLocale -> TimeLocale -> Bool (>) :: TimeLocale -> TimeLocale -> Bool (>=) :: TimeLocale -> TimeLocale -> Bool max :: TimeLocale -> TimeLocale -> TimeLocale min :: TimeLocale -> TimeLocale -> TimeLocale | |
Show TimeLocale | |
Defined in Data.Time.Format.Locale MethodsshowsPrec :: Int -> TimeLocale -> ShowS Source show :: TimeLocale -> String Source showList :: [TimeLocale] -> ShowS Source |
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.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.8.3/docs/html/libraries/time-1.9.3/Data-Time-Format.html