0

私は周りを検索しましたが、なぜこれが起こるのか本当にわかりません。

ほとんどの場合、私のアプリは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時間進んでいるためです。

LastSyncのスクリーンショット 奇妙なことに、Now()を返すと、WebサービスからのJSON出力は次のようになります。

newLastSend = / Date(1357817197087)/

タイムスタンプから日付までのオンラインコンバーターを使用するのは、8時間先ではありません。

これはIISのせいですか?他のすべてがニュートラルである他のカルチャ設定を見ることができません、なぜそれは日付を変更するのですか?どうすればそれを止めることができますか、または与えられたものを受け取り、日付を不変の文化の日付に調整する必要がありますか?

4

2 に答える 2