2011-12-07 3 views
4
scala> import net.liftweb.util.TimeHelpers._ 

import net.liftweb.util.TimeHelpers._ 

scala> 60.minutes == 1.hour 

res14: Boolean = false 

scala> 
+0

等価で注文を元に戻すとどうなりますか?ソースから、 '.minutes'はピリオドを返し、' .hours'はDuration(Periodのサブタイプ)を返します。そうすれば、多型性のものは賞賛されます... –

+0

ああ、うーん。いつか変わったようです...いつか。 https://github.com/lift/framework/blob/master/core/util/src/main/scala/net/liftweb/util/TimeHelpers.scalaとhttp://olim7t.github.com/liftweb-2.0を比較してください例えば、-release-sxr/net/liftweb/util/TimeHelpers.scala.htmlなどです。特定のリリースに固有のものでしょうか?最低でも、使用されている* exact * Liftバージョン - と幸運: –

答えて

3

David Pollakによると、これはジョーダ時間によるものです。 Is It a bug of liftweb TimeHelpers: 60.minutes not equals 1.hourを参照してください。

解決策は、期間に変換し、2つの値を比較することです。 Period.java

期間の定義は、equalsメソッドにも影響します。 1日の期間は24時間の期間と等しくなく、1時間も6 分に等しくありません。これは、ピリオドが期間が という抽象的な定義を表しているためです(たとえば、1日が実際には24時間でない場合は、夏時間境界で23 または25)。 の2つの期間の実際の期間を比較するには、toDuration、 操作を使用して両方の期間に変換します。 の日付によって結果が異なる場合があることを強調しています。

このソリューションは、Googleグループのスレッドへのリンクにandreakによって提供され、他のユーザーがここで見つけることができるようにここにコピーされています。

+0

'res0:Boolean = false'を指定してください。また、Lift 1.0以降は長い時間がかかりました。 – Debilski

+0

@Debilskiうん、あなたは正しい、今度はもっと徹底した仕事をして答えを編集した。 –

+0

+1。 – Debilski

関連する問題