hora 2.0.1 → 2.0.2
raw patch · 5 files changed
+26/−26 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Time.Hora.Zone: class ToTimeZone a b
- Data.Time.Hora.Zone: instance GHC.Real.Integral a => Data.Time.Hora.Zone.ToTimeZone (Data.Time.Hora.Type.Tz (Data.Time.Hora.Type.DatePart a)) (GHC.Base.Maybe (Data.Time.Hora.Type.Tz (Data.Time.Hora.Type.DatePart a)))
- Data.Time.Hora.Zone: instance GHC.Real.Integral a => Data.Time.Hora.Zone.ToTimeZone Data.Time.Clock.UTC.UTCTime (Data.Time.Hora.Type.Tz (Data.Time.Hora.Type.DatePart a))
- Data.Time.Hora.Zone: toTimeZone :: ToTimeZone a b => TimeZoneSeries -> a -> b
+ Data.Time.Hora.Zone: toTimeZone :: (TwoInt a b, Tz' tz) => tz -> (Tz (DatePart a)) -> (Maybe (Tz (DatePart b)))
Files
- changelog.md +8/−0
- hora.cabal +2/−2
- src/Data/Time/Hora/Type.hs +6/−2
- src/Data/Time/Hora/Zone.hs +7/−20
- test/Test/TestZone.hs +3/−2
changelog.md view
@@ -1,3 +1,11 @@+##### 2.0.2+ changes to Data.Time.Hora.Zone:+ + remove redundant ToTimeZone UTCTime (Tz (DatePart a)) instance: + + use Data.Time.Hora.Part fromUtc'+ + ##### 2.0.1 include test data files
hora.cabal view
@@ -1,10 +1,10 @@ name: hora-version: 2.0.1+version: 2.0.2 build-type: Simple cabal-version: >=1.10 synopsis: date time-description: pico precision * timestamps * timezones+description: pico precision * timestamps * timezones * format author: Imants Cekusins maintainer: Imants Cekusins category: System, Time
src/Data/Time/Hora/Type.hs view
@@ -18,6 +18,8 @@ {- | serializeable structure for essential Date, Time parts +may also be used to construct 'UTCTime' + see "Data.Time.Hora.Part" for conversion between 'UTCTime' and 'DatePart' -} data DatePart a = DatePart { year::a,@@ -83,7 +85,7 @@ data Tz a = Tz TimeZone a deriving (Show,Functor) --- | 'TimeZone' | 'TimeZoneSeries' +-- | 'TimeZone' | 'TimeZoneSeries' class Tz' tz where tz'::tz -> UTCTime -> TimeZone @@ -92,7 +94,9 @@ instance Tz' TimeZoneSeries where tz' = timeZoneFromSeries--- ^ see "Data.Time.Hora.Zone" re: 'TimeZoneSeries'+{- ^ see "Data.Time.Hora.Zone" re: 'TimeZoneSeries'++use of 'TimeZoneSeries' is preferred when converting from 'UTCTime' to 'DatePart' -} {- | second and fractions
src/Data/Time/Hora/Zone.hs view
@@ -15,29 +15,16 @@ @ -} module Data.Time.Hora.Zone where -import Data.Time.Clock-import Data.Time.LocalTime.TimeZone.Series import Data.Time.Hora.Part import Data.Time.Hora.Type -{-| convert __a__ to __b__ in specified 'TimeZone' -}-class ToTimeZone a b where- toTimeZone::TimeZoneSeries -> a -> b- - -instance Integral a => - ToTimeZone UTCTime - (Tz (DatePart a)) where- toTimeZone series0 utc0 = - let tz1 = timeZoneFromSeries series0 utc0- in fromUtc' tz1 utc0--- ^ similar to 'fromUtc'' but safer around dates when e.g. Summer time changes ---instance Integral a => - ToTimeZone (Tz (DatePart a))- (Maybe (Tz (DatePart a))) where- toTimeZone series0 dp0 = toUtc dp0 >>= Just . (toTimeZone series0) -- ^ convert 'DatePart' from one 'TimeZone' to another +toTimeZone::(TwoInt a b, Tz' tz) => + tz -- ^ target timezone+ -> (Tz (DatePart a)) -- ^ local (to source timezone) date & time + -> (Maybe (Tz (DatePart b))) {- ^ local (to target timezone) date & time+ + 'Nothing' if source date is invalid-} +toTimeZone series0 dp0 = toUtc dp0 >>= Just . (fromUtc' series0)
test/Test/TestZone.hs view
@@ -5,10 +5,11 @@ import Data.Time.Clock import Data.Time.LocalTime.TimeZone.Olson import Data.Time.LocalTime.TimeZone.Series-import Data.Time.Hora.Zone import Data.Time.Hora.Stamp import Data.Time.Hora.Type+import Data.Time.Hora.Part + main::IO() main = hspec $ do describe "Test.TestZone" $ do@@ -23,4 +24,4 @@ ttz::TimeZoneSeries -> UTCTime -> Tz (DatePart Int)-ttz = toTimeZone +ttz = fromUtc'