获取当前语言环境的日期格式
Getting the date format for the current locale
当我第一次在 System.Locale
中偶然发现常量 defaultTimeLocale
时,我认为它应该包含当前语言环境的默认 TimeLocale。
经过一番尝试,我意识到它总是包含相同的常量,查看 System.Locale
的源代码很快发现它实际上只是一个常量。 (后来我意识到类型也告诉我。由于 defaultTimeLocale
不是 IO
值并且不接受任何参数,因此 has 是常量.)
在 Haskell 中获取与当前语言环境相关的当前 TimeLocale
的方法是什么?
System.CurrentLocale.currentLocale :: IO TimeLocale
来自包裹current-locale
看起来很合适。
我没有测试。查看其源代码,它应该可以工作。我实际上不太喜欢它,因为在它下面产生 四个 date
子进程(!),恕我直言,这对于这个简单的任务来说有点过分了。
可能可以改写为使用某些 C 或 POSIX 函数。
当我第一次在 System.Locale
中偶然发现常量 defaultTimeLocale
时,我认为它应该包含当前语言环境的默认 TimeLocale。
经过一番尝试,我意识到它总是包含相同的常量,查看 System.Locale
的源代码很快发现它实际上只是一个常量。 (后来我意识到类型也告诉我。由于 defaultTimeLocale
不是 IO
值并且不接受任何参数,因此 has 是常量.)
在 Haskell 中获取与当前语言环境相关的当前 TimeLocale
的方法是什么?
System.CurrentLocale.currentLocale :: IO TimeLocale
来自包裹current-locale 看起来很合适。
我没有测试。查看其源代码,它应该可以工作。我实际上不太喜欢它,因为在它下面产生 四个 date
子进程(!),恕我直言,这对于这个简单的任务来说有点过分了。
可能可以改写为使用某些 C 或 POSIX 函数。