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