2017-11-21 5 views
2

storeDateTimeAsTicksは最近のSQLite Net実装のデフォルトの動作であり、文字列として格納する場合に比べてパフォーマンス上の利点もあります。データベースから日付を読み戻すときにSQLite NetのDateTimeKindが指定されていない

残念ながら、データベースにDateTimeティックを保存すると、タイムゾーンは無視され、データベースからDateTimeを読み取ると、指定されていないオブジェクトのDateTimeKindを残して、DateTimeオブジェクトが初期化されます。

DateTimeの仕組みを考えると、DateTimeKind.Localをデータベースから取得してDateTimeを取得するには、データベースに保存する前にUTCに変換し、データベースから読み込んだ後にローカル時間に変換する必要があります。

SQLite Netで独自のラウンドトリップを処理する方法はありますか? シリアル化とデシリアライゼーション中にオブジェクトの前処理と後処理をしないようにしたいと思います。

答えて

0

解決策は、DateTimeではなくDateTimeOffsetを使用することです。 DateTimeOffsetを使用すると、時刻とタイムゾーンが保存され、必要に応じてLocalDateTimeプロパティとUtcDateTimeプロパティを使用できます。

関連する問題