在 Data.Time.Format 中找不到 defaultTimeLocale

Can't find defaultTimeLocale in Data.Time.Format

根据 Hackage 上的 docData.Time.Format 暴露了 defaultTimeLocal。 但是,当我尝试使用它时,它不会退出。

当我查看代码时,它似乎也没有暴露(如果我从源代码生成文档,我看不到这个 defaultTimeLocale)。是因为它需要用一些标志来编译,还是 haddock on hackage 只是错误的。

在哪里可以获得 TimeLocale 的实例?

更新

我在 OSX 上使用 time 版本 1.5.0.1。 以下代码

import Data.Time.Format (defaultTimeLocale)

错误

Module ‘Data.Time.Format’ does not export ‘defaultTimeLocale’

更新

事实上,我使用的是未安装 defaultTimeLocale 的 1.4.2 版。 我正在升级到 1.5.0.1 ...

更新

我删除了我的沙盒,重建了一切。现在可以使用了。

出于某种原因,cabal 没有使用我认为是 (1.5) 的版本,而是 (1.4) 可能来自 haskell 平台。升级解决了这个问题。

对于遇到此答案并希望编写具有向后兼容 time 依赖项的库的任何其他人,您可以使用 CPP pragma 和 #if 检查时间库的最低版本:

{-# Language CPP #-}
#if MIN_VERSION_time(1,5,0)
import Data.Time.Format (defaultTimeLocale)
#else
import System.Locale (defaultTimeLocale)
#endif