BT

Noda Time 1.2リリース,XMLとJSONのシリアライゼーションとテキスト変換をサポート

| 作者: Anand Narayanaswamy フォローする 0 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2013年12月9日. 推定読書時間: 3 分 |

原文(投稿日:2013/11/27)へのリンク

Noda Time 1.2がリリースされた。XMLとバイナリのシリアライゼーションとテキストフォーマッティングに加えて,JSONのシリアライゼーションを扱うアセンブリをオプションでサポートする。Duration, OffsetDateTime, ZonedDateTimeといった型のフォーマットおよび解析,Interval.Contains(), ZonedDateTime.Calendar()などメソッドの他,いくつかのバグも修正された。

今回のリリースではNodaTime.Serialization.JsonNetアセンブリがサポートされる。Json.NET 4.5.11を使って実装された,モバイルとデスクトップいずれのプラットフォームでも利用可能なアセンブリだ。JsonSerialierとJsonSerializerSettingsにはConfigureForNodaTimeという拡張メソッドが提供されている。またNodaConvertersには,各コンバータ用にpublicでstaticな読み取り専用フィールドが用意された。これらはすべて不変(immutable)だが,NodaPatternConverterを使ったパターンから独自コンバータを容易に作成できる。

Noda Time 1.2ではAPIにもいくつか変更が加えられて,DurationPattern, OffsetDateTimePattern, ZonedDateTimePatternなどの新しいクラスが導入された。それぞれがDuration, OffsetDateTime, ZonedDataTimeの解析パターンを表している。GeneralIsoPattern, BclRoundtripPattern, FullRoundtripPatternなど,o/Oやr,あるいはsパターンへのプログラムからのアクセスを提供する,新しいプロパティも含まれている。また今回のリリースではDateTimeZoneNotFoundExceptionやCalendarSystem,あるいはInvalidNodaDataExceptionといったクラスがSealedされた。

Noda Time 1.2では,Instant, OffsetDateTime, ZonedDateTime, LocalDateTime, LocalDate, LocalTime, Offset, Interval, Duration, PeriodBuilderが IXmlSerializableを実装していて,シリアライズ可能になっている。さらにISerializableも実装しているので, [Serializable] 属性を使用すれば,BinaryFormatterを使用したシリアライズも可能だ。

最新リリースにはInstantPatternも含まれている。WithMinMaxLabels()メソッドは,Insitantの最小および最大値のフォーマットに用いるテキストを置き換えることができる。また,新しいEra.AnnoMartyrumは,それまであったAnnoMartyrmの名称誤りを置き換えるものだ。さらにはInterval.Contains(), ZonedDateTime.Calendar, ZonedDateTime.GetZoneInterval()といったメソッドに加えて,GetValueOrThrow()メソッドによってスローされる例外に直接アクセスするためのParseResult.Exceptionが追加されている。

Noda Time 1.2では,Period.Between() がうるう年付近の月末にコールされると正と負の値を混在した結果を返すバグ,およびlong,MaxValueを越える数のチックでPeriodを作成したときに発生する不正なオーバーフローがフィックスされている。また既存のInstantパターンn, g, およびdの大文字エイリアスが,今回のリリースで削除されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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