我正在使用time-1.5.0.1
图书馆.
我给出了代表纪元秒的值,例如1449590820
等于2015-12-08 11:07:00 -0500
.
使用Data.Time模块,我希望能够转换1449590820
为ZonedTime
.
我想要使用的功能是这样的:
utcToZonedTime :: TimeZone -> UTCTime -> ZonedTime
问题在于获得TimeZone
我需要的价值.可用的函数Data.Time
取决于TimeZone
从环境中获取或要求您显式构造TimeZone
for EDT
或EST
.
我想避免依赖环境给我一个ZonedTime
,因为无法保证代码将在设置为美国东部时间的服务器上运行.所以使用这个功能是不可能的:
utcToLocalZonedTime :: UTCTime -> IO ZonedTime
这样我就可以选择TimeZone
自己构建必要的输入.
但是,TimeZone
对于EDT
不一样TimeZone
的EST
,所以我需要一个不同TimeZone
取决于夏令是否有效.有一个简单的方法来产生TimeZone
的EDT
或EST
取决于a的值UTCTime
(即它是否属于夏令时的时间内)?
我想强调一点,我只想使用纯函数来做这件事.
也许我正在寻找一个Haskell模拟Ruby中的tzinfo库.