に正しい日付と時刻を解析できませんでした私はこのようなjson
を返すサービスがあります。は、C#:現在のシステムのタイムゾーン
[
{
"title":"First event",
"startDate":"\/Date(1495512000000-0400)\/",
"endDate":"\/Date(1495857540000-0400)\/",
}
]
を私がモデルに関してリストにJSON出力をデシリアライズ私が定義されています:
モデルdeseriaの
public class EventModel
{
[JsonProperty("title")]
public string Title { get; set; }
[JsonProperty("startDate")]
public DateTime StartDate { get; set; }
[JsonProperty("endDate")]
public DateTime EndDate { get; set; }
}
C#のコードをライゼーション
デシリアライズ用にNewtonsoft.Json
パッケージを使用しています。
List<EventModel> lstEvent = new List<EventModel>();
lstEvent = JsonConvert.DeserializeObject<List<EventModel>>(await objMyServices.GetData());
だから私は私は2つの異なるタイムゾーンで次のような出力を得るデバッグこの場合:30(コルカタ - インド):GMT + 5の場合
開始時間:23 -05-2017 9時30分00秒
終了時間:27-05-2017については午前9時29分00秒
GMT-4:00(ニューヨーク):
開始時間:23-05-2017午後12時00分00秒
終了時間:すべてのレコードのため26-05-2017午後11時59分00秒
、開始時刻がに解析されていませんGMT-4:00(ニューヨーク)に切り替えると、それぞれのシステムのタイムゾーンになります。 ここで私が紛失していることは何ですか?
これはJsonの日付ではありません。 JSonの日付はISO8601に従ってフォーマットされます。これはAJAX時代の非常に古い形式です。 –
さらに、LocalTime、UTCまたはUndefinedのDateTimeを使用しています。返される日付のDateTimeKindプロパティは何ですか?同じUTC時間は、ニューヨークでローカルに変換された場合には異なって表示されますが、それでもまだ同じです。使用するDateTimeKindを明示的に指定しないと、表示されるときにも異なるように表示されます。 –
@PanagiotisKanavos - ISO8601を使用する必要がありますが、何も必要なものはありません。https:// stackoverflow。com/questions/10286204/the-right-json-date-format – CodeNaked