66{-# OPTIONS_GHC -fno-warn-orphans #-}
77#include "thyme.h"
88
9- {-|
10- Formatting and parsing for dates and times.
11- -}
9+ -- | Formatting and parsing for dates and times.
1210module Data.Thyme.Format
1311 (
1412 -- * Formatting Date/Time to String
15- FormatTime (.. )
13+ FormatTime (.. )
1614 , formatTime
1715 -- * Parsing Date/Time from String
1816 , ParseTime (.. )
@@ -21,6 +19,10 @@ module Data.Thyme.Format
2119 , readsTime
2220 , TimeParse (.. )
2321 , timeParser
22+
23+ -- * Time Locale
24+ , TimeLocale (.. )
25+ , defaultTimeLocale
2426 ) where
2527
2628import Prelude
@@ -46,7 +48,12 @@ import Data.Thyme.Clock.TAI
4648import Data.Thyme.Format.Internal
4749import Data.Thyme.LocalTime
4850import Data.VectorSpace
51+
52+ #if MIN_VERSION_time(1,5,0)
53+ import Data.Time.Format (TimeLocale (.. ), defaultTimeLocale )
54+ #else
4955import System.Locale
56+ #endif
5057
5158-- | All instances of this class may be formatted by 'formatTime'.
5259class FormatTime t where
@@ -216,26 +223,20 @@ class FormatTime t where
216223--
217224-- ==== <https://en.wikipedia.org/wiki/ISO_8601 ISO 8601>
218225-- @
219- -- > import System.Locale
220- --
221226-- > 'formatTime' 'defaultTimeLocale' "%Y-%m-%dT%H:%M:%S%N" $ 'mkUTCTime' 2015 1 15 12 34 56.78
222- -- "2015-01-15T12:34:56+00:00"
227+ -- "2015-01-15T12:34:56+00:00"
223228-- @
224229--
225230-- ==== <http://tools.ietf.org/html/rfc822#section-5 RFC822>
226231-- @
227- -- > import System.Locale
228- --
229232-- > 'formatTime' 'defaultTimeLocale' "%a, %_d %b %Y %H:%M:%S %Z" $ 'mkUTCTime' 2015 1 15 12 34 56.78
230- -- "Thu, 15 Jan 2015 12:34:56 UTC"
233+ -- "Thu, 15 Jan 2015 12:34:56 UTC"
231234-- @
232235--
233236-- ==== YYYY-MM-DD hh:mm:ss.000000
234237-- @
235- -- > import System.Locale
236- --
237238-- > 'formatTime' 'defaultTimeLocale' "%Y-%m-%d %H:%M:%S.%v" $ 'mkUTCTime' 2015 1 15 12 34 56.78
238- -- "2015-01-15 12:34:56.780000"
239+ -- "2015-01-15 12:34:56.780000"
239240-- @
240241{-# INLINEABLE formatTime #-}
241242formatTime :: (FormatTime t )
@@ -690,8 +691,6 @@ timeParser TimeLocale {..} = flip execStateT unixEpoch . go where
690691--
691692-- ==== <https://en.wikipedia.org/wiki/ISO_8601 ISO 8601>
692693-- @
693- -- > import System.Locale
694- --
695694-- > 'parseTime' 'defaultTimeLocale' "%Y-%m-%dT%H:%M:%S%N" "2015-01-15T12:34:56+00:00" :: 'Maybe' 'UTCTime'
696695-- Just 2015-01-15 12:34:56 UTC
697696--
@@ -701,8 +700,6 @@ timeParser TimeLocale {..} = flip execStateT unixEpoch . go where
701700--
702701-- ==== YYYY-MM-DD hh:mm:ss.0
703702-- @
704- -- > import System.Locale
705- --
706703-- > 'parseTime' 'defaultTimeLocale' "%Y-%m-%d %H:%M:%S%Q" "2015-01-15 12:34:56.78" :: 'Maybe' 'UTCTime'
707704-- Just 2015-01-15 12:34:56.78 UTC
708705-- @
0 commit comments