TimeSpan
シリアル化のカスタムフォーマットを指定することはできますか? Newtonsoft.Json
を使用してください。newtonsoft jsonシリアライズタイムパンフォーマット
私はフォーマットHHでシリアライズされた文字列を持っていると思います。たとえば、ミリメートルのように:
TimeSpan.FromHours(5)
- > // "05:00"
TimeSpan.FromHours(-5)
- > //「-05:00 "
ありがとうございます!
TimeSpan
シリアル化のカスタムフォーマットを指定することはできますか? Newtonsoft.Json
を使用してください。newtonsoft jsonシリアライズタイムパンフォーマット
私はフォーマットHHでシリアライズされた文字列を持っていると思います。たとえば、ミリメートルのように:
TimeSpan.FromHours(5)
- > // "05:00"
TimeSpan.FromHours(-5)
- > //「-05:00 "
ありがとうございます!
in the source codeのように、定義済みの設定(DateTime
など)を使用してフォーマットを変更する方法はありません。
あなたができることはTimeSpan
のために新しいJsonConverter
を書いて、適切に書式を処理します。 JsonSerializerSettings.Converters
に含めるか、デフォルト設定を変更して使用してください。
あなたはDateTimeのインスタンスを取得し、次にようにそれから時間を加算および減算することができます:あなたが必要とする時間を指定するには
System.DateTime timeNow = System.DateTime.Now;
DateTime futureDateTime = timeNow.Add(new TimeSpan(5, 0, 0));
DateTime prevDateTime = timeNow.Add(new TimeSpan(-5, 0, 0));
。あなたの文字列形式にそれらを置くためにその後:
futureDateTime.ToString("hh:mm") // 12 hour clock
バックのDateTimeに文字列値をデシリアライズするには、特定のフォーマットを持つオブジェクト、この記事でDateTimeFormatとIsoDateTimeConverterを指定する例があります: Deserializing dates with dd/mm/yyyy format using Json.Net
です間違っている。このように 'DateTime'をハックしたいのであれば、' .Date'を使わなければなりません。 'DateTime.Now.Date'(別名' DateTime.Today')なので、時刻コンポーネントは空で、 'TimeSpan'が正しく表示されます。さらに、これは24時間未満の値に対してのみ機能し、負でない値に対してのみ機能します.-どのようにして 'DateTime'に負の時間成分を表示したいですか? –
kiziu