2012-04-30 8 views
1

Excelの(.net)Webサービス(はバックラッシュからカバーします)を検索して、日付の配列を返します。私は、日の境界線にある日付が1時間前に移動したことに気付きました。サーバー上のWebサービスをチェックして元の日付が正しいことがわかりました。Webサービスの日付とタイムゾーン情報

次に、クライアントマシンで呼び出しを表示するためにFiddlerを使用しました。深夜にある日付には、他のすべての日付時刻と同じように末尾にZ(UTCとしてマークする)があります。

UPDATE上記のステートメントは間違っています.Zでマークされた最初と最後の日付ですが、時刻は関係ありません。クライアントが最初と最後の日付のみを調整することは間違いありません。

私はそれをSOAPにします。これをUTCからローカル(BST)に変更して1時間追加します。

私の質問は、これらの日付にZが追加されないようにする(またはローカルに変更する)方法を教えてください。

IIS 7.5のカルチャを確認し、en-GBに設定すると、サーバーはUKに設定されます。

+0

としてサービス契約でプロパティを公開するだろうか、それはあなたがのdevのアクセス権を持っている唯一のExcelクライアントでありますに? –

+0

私たちはウェブサーバそのものを含め、すべてにアクセスできます – DJIDave

答えて

1

これは少し面倒ですが、これは本当に答えではありませんが、試してみるべきことがいくつかあります。

片方向オフセットを削除することがあります。私が持っていたために、コードを持っていませんが、psudeoのようなコードで、それは何のタイムゾーンオフセットを持っていないので、これが最後にZを入れてからサービスを停止する場合がありますする必要があり

TimeZone tz = GlobalizationNamespace.GetTimeZone("Greenwich Mean Time"); 
SomeDateTimeNoOffset = SomeDateTime.AddHours(tz.GetUtcOffset(SomeDateTime)); 

かもしれません。

もう一つの他のオプションは、サーバー上のWebサービスのコードを変更することができます文字列

public string DateTimeNoTzInfo 
{ 
    get { DateTime.ToString('yyyy-MM-ddThh:mm:ss.ttttt') } 
} 
+2

Jaimalに感謝、私は文字列オプションについて考えました。私は最初の選択肢を理解していませんが、うまくいくような解決策を見つけました。 Date.SpecifyKind(DateValue、DateTimeKind.Local)を実行して、2012-04-30T12:50:49 +0100を送信します。これはSOAPクライアントでOKと思われます – DJIDave

関連する問題