非常に日付の多いスキーマを持つ Nestjs アプリケーションがあります。私の理解によると、日付はタイムゾーンなしでmongoに保存されます。私の API は、タイムゾーン オフセットを含む ISO 形式の時間を受け入れます。
次のオブジェクトを挿入しています{"date": "2009-06-30T18:30:00+11:00"}
mongoデータベースに次のドキュメントが作成されます{date: ISODate('2009-06-30T07:30:00.000Z'), _id: "..."}
したがって、タイムゾーンのオフセットは失われます。
タイムゾーンのオフセットを維持し、GET 要求で同じオフセットを持つ ISO 文字列を配信するエレガントな方法はありますか? クラストランスフォーマーを利用して、オフセットを別のプロパティに保存してみてはいかがでしょうか? はいの場合、どのように?
関連するクラスは次のとおりです。(ここには示されていませんが、GET リクエスト専用の ItemDto があります。)
宛先:
export class CreateItemDto {
// Some other props are here
/**
* Date of this Information.
* @example "1900-01-01T05:00:00.000+05:00"
*/
@IsNotEmpty()
@IsDate()
@Type(() => Date)
date: Date;
}
スキーマ:
export class ItemSchema {
// Some other props are here
@Prop({ type: Date, required: true })
date!: Date;
}