The latest version of lens-datetime is 0.3-0.
lens-datetime
Version 0.2.1 revision 0 uploaded by MihalyBarasz.
Package meta
- Synopsis
- Lenses for Data.Time.* types
- Description
The
lens-datetime
library provides a unified lens based accessors to the various types inData.Time.Clock
,Data.Time.Calendar
andData.Time.LocalTime
. This library only tries to make some of the common use-cases convenient, it doesn't aim for completeness. If you want completeness and/or efficiency try thethyme
package instead (http://hackage.haskell.org/package/thyme).Demonstration of basic uses.
import Control.Lens import Data.Time import Data.Time.Lens aDay :: Day aDay = fromGregorian 2013 08 22 aLocal :: LocalTime aLocal = LocalTime aDay (TimeOfDay 13 45 28) aUTC :: UTCTime aUTC = UTCTime aDay 7458.9
You can then do the following:
> aLocal ^. years 2013 > aUTC ^. months 8 > aLocal & time .~ midnight 2013-08-22 00:00:00 > aUTC & days .~ 1 & months .~ 1 2013-01-01 02:04:18.9 UTC
You can manipulate the date-time values with proper roll-over behavior via the
FlexibleDateTime
mechanism:> aLocal & flexDT.months +~ 12 2014-08-22 13:45:28 > aUTC & flexDT.days +~ 100 2013-11-30 02:04:18.9 UTC > aLocal & flexDT.minutes +~ 120 2013-08-22 15:45:28 > aLocal & flexDT %~ ((days +~ 7) . (hours +~ 2)) 2013-08-22 13:45:28
- Author
- Mihaly Barasz <klao@nilcons.com>
- Bug reports
- http://github.com/nilcons/lens-datetime/issues
- Category
- Data, Lenses
- Copyright
- n/a
- Homepage
- http://github.com/nilcons/lens-datetime
- Maintainer
- Mihaly Barasz <klao@nilcons.com>
- Package URL
- n/a
- Stability
- experimental