私は周りを検索しましたが、なぜこれが起こるのか本当にわかりません。
ほとんどの場合、私のアプリはGMTを使用するデバイスからGMTで実行されますが、シンガポールのサーバーにまたがっているだけなので、時間は8時間進んでいます。JSONから解析されたDateTimeオブジェクトで奇妙な動作が見られます。
私のアプリは次のようなJSON(ISO 8601)の日付を受け取りました:
LastSync = 2013-01-10T11:05:38.822Z
.Net3.5用の組み込みのJSONシリアライザーを使用する単純な.asmxWebサービスを使用しています。自動的に解析されたDateTimeオブジェクトは、JSONが指定する日付より8時間前の日付を返します。関数は次のとおりです。
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function SyncFlatTable(ByVal tableName As String, ByVal LastSync As DateTime)
Return WebServiceJSON.SyncFlatTable(tableName, LastSync)
End Function
ご覧のとおり、LastSyncはDateTime引数の値が8時間進んでいるためです。
奇妙なことに、Now()を返すと、WebサービスからのJSON出力は次のようになります。
newLastSend = / Date(1357817197087)/
タイムスタンプから日付までのオンラインコンバーターを使用するのは、8時間先ではありません。
これはIISのせいですか?他のすべてがニュートラルである他のカルチャ設定を見ることができません、なぜそれは日付を変更するのですか?どうすればそれを止めることができますか、または与えられたものを受け取り、日付を不変の文化の日付に調整する必要がありますか?