2

Joda の LocalDate クラスと java.util の Date クラスの違いは何かと思っていました。また、一方を他方よりも使用する利点はありますか?

4

2 に答える 2

8

Joda TimeのWebサイトでは、すべてがうまく説明されていると思います。

Joda-Timeは、Javaでの日付と時刻の処理を根本的に変更するために作成されました。JDKクラスのDateとCalendarは非常に不適切に設計されており、多数のバグがあり、パフォーマンスに奇妙な影響を及ぼしています。Joda-Timeを開発して使用する理由のいくつかを次に示します。

  • 使いやすい。カレンダーでは、簡単な方法がないため、「通常の」日付へのアクセスが困難になります。Joda-Timeには、getYear()やgetDayOfWeek()などの単純なフィールドアクセサーがあります。
  • 簡単に拡張できます。JDKは、Calendarのサブクラスを介して複数のカレンダーシステムをサポートします。これは不格好であり、実際には別のカレンダーシステムを作成することは非常に困難です。Joda-Timeは、Chronologyクラスに基づくプラグ可能なシステムを介して複数のカレンダーシステムをサポートします。
  • 包括的な機能セット。ライブラリは、日時の計算に必要なすべての機能を提供することを目的としています。これは、JDKで複製するのが難しい奇数ボールの日付形式のサポートなど、すぐに使用できる機能をすでに提供しています。
  • 最新のタイムゾーン計算。タイムゾーンの実装は、年に数回更新されるパブリックtzデータベースに基づいています。新しいJoda-Timeリリースには、このデータベースに加えられたすべての変更が組み込まれています。以前に変更が必要な場合は、ゾーンデータを手動で更新するのは簡単です。
  • カレンダーのサポート。ライブラリは現在、8つのカレンダーシステムを提供しています。将来的にはさらに追加される予定です。
  • 簡単な相互運用性。ライブラリは、JDKと同じで、他の一般的な時間表現と同様のミリ秒の瞬間を内部的に使用します。これにより相互運用性が容易になり、Joda-Timeにはすぐに使用できるJDKの相互運用性が付属しています。
  • より良いパフォーマンス特性。カレンダーには、予期しない瞬間にフィールドを再計算するため、奇妙なパフォーマンス特性があります。Joda-Timeは、アクセスされているフィールドの最小限の計算のみを実行します。
  • 良好なテストカバレッジ。Joda-Timeには、ライブラリの品質を保証する包括的な開発者テストのセットがあります。
  • 完全なドキュメント。概要を提供し、一般的な使用シナリオをカバーする完全なユーザーガイドがあります。javadocは非常に詳細で、APIの残りの部分をカバーしています。
  • 成熟度。ライブラリは2002年から活発に開発されています。新しい機能とバグ修正が追加されて改善が続けられていますが、成熟した信頼性の高いコードベースです。多くの関連プロジェクトが利用可能になりました。
  • オープンソース。Joda-Timeは、ビジネスフレンドリーなApacheLicenseバージョン2.0でライセンスされています。

于 2012-07-18T18:23:40.223 に答える
0

JodaTimeの使用を決定するのに役立つ具体的なことの1つは、日付の検証です。これは、標準のjava.util.Dateでは非常に困難です。

DateTime expireDate = new DateTime( year, month, 1, 0, 0 );

if ( expireDate.isBeforeNow() ) {
    // Expired handling here
}
于 2012-07-18T18:38:04.657 に答える