私はサーバーの現在時刻を返すWCFサービスを使用しています。 クライアントが異なるタイムゾーンにあります。このサービスを呼び出すと、サーバーから返された時刻が現地時間に自動的に変換されます。これは不要です。どのように私はこれを無視するのですか?タイムゾーンに基づいて時間を自動的に変換するWCF
6
A
答えて
3
WCFサービスからUTCに送信したものをクライアントに変換し、クライアントで新しい時刻を作成する場合はUTCとして指定します。これにより、普遍的な標準時間帯の基準になります。クライアントに時刻を表示し、それをUTC時刻として識別できるようにすることができます。その時間が本当に何であるかについての不一致やあいまいさが緩和されます。
DateTime serverTimeRaw = myService.GetServerTime();
DateTime serverTimeUTC = new DateTime(serverTimeRaw.Ticks, DateTimeKind.Utc);
Console.WriteLine(serverTimeUTC); // Prints server time as UTC time
時刻を適切なタイムゾーンで実際に表現する必要がある場合は、タイムゾーン情報とDateTimeを一緒に送信する必要があります。私は、両方の情報をカプセル化し、DateTime自体ではなく、その情報を返す型を作成することをお勧めします。タイムゾーン情報は、DateTimeの本質的なコンポーネントではありません。それらは2つの別々の懸念事項であり、実際に構成されたときにのみ複合的な意味を提供します。
class ZonedDateTime
{
public DateTime DateTimeUtc { get; set; }
public TimeZoneInfo TimeZone { get; set; }
public DateTime ToDateTime()
{
DateTime dt = TimeZoneInfo.ConvertTime(DateTimeUtc, TimeZone);
return dt;
}
}
// ...
ZonedDateTime zdt = myService.GetServerZonedTime();
DateTime serverTimeActual = zdt.ToDateTime();
関連する問題
- 1. C++のタイムゾーンに基づく時間
- 2. 時間(時間)に基づいてデータを効率的に分割する
- 3. データモデルに基づいてフォームを自動的に生成する
- 4. asp.netのタイムゾーンに基づいて現地時間を設定する方法
- 5. 2列に基づいて行を列に動的に変換するMysqlクエリ
- 6. クラスをwcfサービスに自動的に変換する
- 7. Outlookはカテゴリに基づいてリマインダを自動的に変更します
- 8. 変数に基づいて動的にコントロールを作成する
- 9. JRadioButtonに基づいてJPanelを動的に変更する
- 10. 時間に基づいてポリラインに沿って移動
- 11. タイムゾーンに基づいてユーザーをリダイレクト
- 12. Eclipseを変更する「自動的にビルド」時間間隔?
- 13. テーブルビューに基づいてTableModelを自動変更しますか?
- 14. ロールに基づいてすべてのユーザーを自動的に購読する
- 15. 時間関連の変数に基づいて常に変化するサイントーン
- 16. gVimウィンドウサイズに基づいてフォントを動的に変更
- 17. MySQL時間を1つのタイムゾーンから別のタイムゾーンに変換する
- 18. 夏時間とJavaScriptタイムゾーンの変換
- 19. タイトルに基づいてOutlook添付ファイルを自動的に保存する
- 20. フィールドに基づいてSPListItemsを自動的にソートする方法
- 21. フォルダの内容に基づいてリストアイテムを自動的に追加する
- 22. C#:実行時にコントロールのサイズに基づいてフォントを自動的に調整する関数ですか?
- 23. タイムゾーン間の時間を変換する方法(UTCからEDT)?
- 24. Symfony + Timezones:(自動)ユーザーとサーバーのタイムゾーンの間の変換?
- 25. AngularJS:時差に基づいてクラスを動的に設定する
- 26. 変数に基づく動的ビュー
- 27. Drupalでアップロード時にPDFをJPGに自動的に変換
- 28. 時間に基づいてリスト項目を表示する
- 29. 時間に基づいてオーディオファイルを検索する
- 30. 経過時間に基づいてデータフレームをフィルタリングする