BT

ポータブルクラスライブラリがNoda Timeをサポート

| 作者: Jonathan Allen フォローする 595 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2013年4月25日. 推定読書時間: 3 分 |

原文(投稿日:2013/04/15)へのリンク

 

高度な日付/時間ライブラリであるNoda TimeがWindows 8、Windows Phone 7、および Windows Phone 8で利用できるようになった。このバージョンもまた、NuGetパッケージと包括的なユーザーズ ガイドを提供している。

Noda timeは、その型システムをローカルとグローバルの2つのカテゴリーに分ける。

ローカル型は、どのタイムゾーンともバインドされていないが、カレンダーコンポーネントを含む事ができる。これは、 DateTimeKindを未指定にセットしたDateTime クラスに似ている。しかし、 Noda Timeはまた、時間と日付の値のみもサポートしている。

グローバル型は、Instantの概念を基にしている。インスタントは、普遍的なタイムライン内の特定の瞬間だ。他のシステムとの互換性のために、1970 年 1 月 1 日、UTC (Unix エポック)からのタイマー刻み(ティック) に基づいている。1ミリ秒が10,000 ティックでかなり高い解像度を実現している。ただ注意して欲しいのは、いくつかの科学機器は ティックを用いて10-18秒の精度で時間を測定することができることだ。

ZonedDateTimeのような幾つかのクラスは、インスタントとタイムゾーン情報を組み合わせる。DateTimeOffsetと違って、ZonedDateTimeは、ユーザーに提示される必要のある実際のタイムゾーン情報を持っている。

ドキュメントにあるこの変換図は、コアの型がどう関係しているのかを示している。

 

BCLよりもNoda Timeが優れている別の点は、歴史的な時間のサポートである。BCLの DateTimeクラスは、年の最小値が1 CEである。Noda Timeは、約27000 BCEをサポートするので, 古代エジプトと中国間のタイムラインを比較する必要のあるアプリでそれを使うことができる。

Noda Timeは、 Windows と Olson タイムゾーンデータベースの両方をサポートする。政府はしばしば、タイムゾーンの法律を変えるので、Noda Timeによってデータベースのもっと最近バージョンを取り込める。

Noda Timeでは, Period と Duration は、違う意味になる。Duration は、ティックで測れる一定の時間である。Periodは、抽象概念で“1ヶ月” 、 “2週間”などである。 “Periodで表された経過時間は一定していない。1月1日に加えられた "1ヶ月" は、2月1日に加えられる時よりも実質長い。なぜなら2月は、いつも1月よりも短いからである。”

JavaのJoda Timeを基にした Noda Timeは、既存の.NET date/time クラスにある問題の多くを解決するように設計されている。例えば、これによって開発者は、時間コンポーネント無しで直接日付を表現でき、不要なタイムゾーンの変換のために、誤って “12月10日真夜中” を“12月9日午後11時” に変えてしまう問題を排除できる。

テストをサポートするために、Noda Timeは、IClock interfaceを提供している。これは、SystemClock と FakeClockによって実装されており、一度初期化すれば、FakeClockは手動でインクリメントでき、あるいは自分で一定量インクリメントするように自動インクリメントに設定できる。

Noda Timeは、Apache Licenseの下で提供されている。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT