Scala有可用的日期/时间API吗?

时间:2010-05-18 11:25:31

标签: datetime scala scala-2.8

我正在寻找类似于Scoda的JodaTime或JSR 310的东西,它利用了很好的Scala功能,例如运算符重载,并且不依赖于隐式转换(我对隐式转换有一种非理性的恐惧)。

我知道http://github.com/jorgeortiz85/scala-time,但它只是让JodaTime陷入困境。

1 个答案:

答案 0 :(得分:3)

隐式转换没有错。即使Java库未用于底层逻辑,任何设计合理的纯Scala库仍然会使用implicits,允许您编写5.days + 3.minutes等表达式。

并非所有implicits都是相同的,隐式转换为您完全控制的非常特定的类型几乎肯定是安全的。

正如其他人已经说过的那样,在大多数情况下,这种转换会被优化掉,特别是在启用转义分析的情况下,所以不要让他们担心你!

在JSR 310最终确定之前,joda-time是你最好的。

除了需要遵循Java命名约定和缺乏运算符重载之外,joda-time已经非常适合惯用的Scala。该设计本质上非常实用,特别是它包含不可变性的方式,因此scalaj-time实际上只是图书馆周围非常薄的包装。

您还可以获得scalaj-time可以轻松升级以使用JSR 310的好处,因此在那时迁移代码会少得多。

自2.8以来,scala-time已重命名为scalaj-time:http://github.com/scalaj/scalaj-time