{-# LANGUAGE CPP #-}
#if __GLASGOW_HASKELL__ >= 701 && MIN_VERSION_base(4,4,1)
{-# LANGUAGE Safe #-}
#endif
module System.Locale (
TimeLocale(..)
, defaultTimeLocale
, iso8601DateFormat
, rfc822DateFormat
)
where
import Prelude
data TimeLocale = TimeLocale {
TimeLocale -> [(String, String)]
wDays :: [(String, String)],
TimeLocale -> [(String, String)]
months :: [(String, String)],
TimeLocale -> [(String, String)]
intervals :: [(String, String)],
TimeLocale -> (String, String)
amPm :: (String, String),
TimeLocale -> String
dateTimeFmt, TimeLocale -> String
dateFmt,
TimeLocale -> String
timeFmt, TimeLocale -> String
time12Fmt :: String
} deriving (TimeLocale -> TimeLocale -> Bool
(TimeLocale -> TimeLocale -> Bool)
-> (TimeLocale -> TimeLocale -> Bool) -> Eq TimeLocale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TimeLocale -> TimeLocale -> Bool
== :: TimeLocale -> TimeLocale -> Bool
$c/= :: TimeLocale -> TimeLocale -> Bool
/= :: TimeLocale -> TimeLocale -> Bool
Eq, Eq TimeLocale
Eq TimeLocale =>
(TimeLocale -> TimeLocale -> Ordering)
-> (TimeLocale -> TimeLocale -> Bool)
-> (TimeLocale -> TimeLocale -> Bool)
-> (TimeLocale -> TimeLocale -> Bool)
-> (TimeLocale -> TimeLocale -> Bool)
-> (TimeLocale -> TimeLocale -> TimeLocale)
-> (TimeLocale -> TimeLocale -> TimeLocale)
-> Ord TimeLocale
TimeLocale -> TimeLocale -> Bool
TimeLocale -> TimeLocale -> Ordering
TimeLocale -> TimeLocale -> TimeLocale
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: TimeLocale -> TimeLocale -> Ordering
compare :: TimeLocale -> TimeLocale -> Ordering
$c< :: TimeLocale -> TimeLocale -> Bool
< :: TimeLocale -> TimeLocale -> Bool
$c<= :: TimeLocale -> TimeLocale -> Bool
<= :: TimeLocale -> TimeLocale -> Bool
$c> :: TimeLocale -> TimeLocale -> Bool
> :: TimeLocale -> TimeLocale -> Bool
$c>= :: TimeLocale -> TimeLocale -> Bool
>= :: TimeLocale -> TimeLocale -> Bool
$cmax :: TimeLocale -> TimeLocale -> TimeLocale
max :: TimeLocale -> TimeLocale -> TimeLocale
$cmin :: TimeLocale -> TimeLocale -> TimeLocale
min :: TimeLocale -> TimeLocale -> TimeLocale
Ord, Int -> TimeLocale -> ShowS
[TimeLocale] -> ShowS
TimeLocale -> String
(Int -> TimeLocale -> ShowS)
-> (TimeLocale -> String)
-> ([TimeLocale] -> ShowS)
-> Show TimeLocale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TimeLocale -> ShowS
showsPrec :: Int -> TimeLocale -> ShowS
$cshow :: TimeLocale -> String
show :: TimeLocale -> String
$cshowList :: [TimeLocale] -> ShowS
showList :: [TimeLocale] -> ShowS
Show)
defaultTimeLocale :: TimeLocale
defaultTimeLocale :: TimeLocale
defaultTimeLocale = TimeLocale {
wDays :: [(String, String)]
wDays = [(String
"Sunday", String
"Sun"), (String
"Monday", String
"Mon"),
(String
"Tuesday", String
"Tue"), (String
"Wednesday", String
"Wed"),
(String
"Thursday", String
"Thu"), (String
"Friday", String
"Fri"),
(String
"Saturday", String
"Sat")],
months :: [(String, String)]
months = [(String
"January", String
"Jan"), (String
"February", String
"Feb"),
(String
"March", String
"Mar"), (String
"April", String
"Apr"),
(String
"May", String
"May"), (String
"June", String
"Jun"),
(String
"July", String
"Jul"), (String
"August", String
"Aug"),
(String
"September", String
"Sep"), (String
"October", String
"Oct"),
(String
"November", String
"Nov"), (String
"December", String
"Dec")],
intervals :: [(String, String)]
intervals = [ (String
"year",String
"years")
, (String
"month", String
"months")
, (String
"day",String
"days")
, (String
"hour",String
"hours")
, (String
"min",String
"mins")
, (String
"sec",String
"secs")
, (String
"usec",String
"usecs")
],
amPm :: (String, String)
amPm = (String
"AM", String
"PM"),
dateTimeFmt :: String
dateTimeFmt = String
"%a %b %e %H:%M:%S %Z %Y",
dateFmt :: String
dateFmt = String
"%m/%d/%y",
timeFmt :: String
timeFmt = String
"%H:%M:%S",
time12Fmt :: String
time12Fmt = String
"%I:%M:%S %p"
}
iso8601DateFormat :: Maybe String -> String
iso8601DateFormat :: Maybe String -> String
iso8601DateFormat Maybe String
mTimeFmt =
String
"%Y-%m-%d" String -> ShowS
forall a. [a] -> [a] -> [a]
++ case Maybe String
mTimeFmt of
Maybe String
Nothing -> String
""
Just String
fmt -> Char
'T' Char -> ShowS
forall a. a -> [a] -> [a]
: String
fmt
rfc822DateFormat :: String
rfc822DateFormat :: String
rfc822DateFormat = String
"%a, %_d %b %Y %H:%M:%S %Z"