2012-01-19 1 views
2
私は(ただし、応答なしで。)答え必要があるので信用してここに this guy私の質問があると正確に同じ質問を持つ別のフォーラムのウェブサイトを見つけるまで、私はこの問題を説明することを楽しみにしていませんでした

...クライアントのタイムゾーンではなく、タイムゾーンを使用するように.NET WinFormsコンポーネントを取得する方法を教えてください。

がクライアントのデスクトップにインストールされる大規模なWindows .Netアプリケーション(winform実行可能ファイル)があります。このアプリケーションは、異なるタイムゾーンにあるサーバー上のWeb サービスを呼び出します。実質的にすべての日付 指向コンポーネントはタイムゾーンの違いを検出し、自動的に (ほとんどのアプリケーションでは一般的に望ましいですが、日付 "である会計関連アプリケーションで問題を引き起こします) "日時"の指向。私たちは「日付」部分だけに興味があります。 しかし、2003年1月1日のGMT-5の日付は、クライアント上で 12/31/2002 11:00 GMT-6に自動的に変換されます。 のコードを実行してUniversalTimeを抽出して の視覚的目的のために1/1/2003に戻すのではなく、 のクライアントサイド実行可能ファイルのタイムゾーンを単純に「偽装」したいと思っています。サーバーと同じタイムゾーン

質問:グローバル設定ではなく、現在実行中のインスタンスである に対して、プログラムでTimeZoneを設定できますか?

私たちの正確な問題であるため、実際に追加する必要はありません。私たちの場合、ActiveReportsはリモートSQLデータをデータセットにフェッチし、そのレポートをデータセットにバインドします。たとえば、誕生日が間違っているのは、それらの日付を保存しているためです。また、X時間は西洋時間帯の日付を引いていますか?だから、誕生日はマイナス1になります。

ありがとうございます!

セス

+0

使用している.NETのバージョンは何? System.DateTimeとタイムゾーンについて.NET2にいくつかの変更が加えられました(System.DateTime.Kindが追加されました)。 DateTimeと仮定すると、System.DateTime.Kindの値は何ですか? データベースのデータ型とは何ですか(SQL Serverにはいくつかのオプションがあります)。 クライアントでクエリを実行していて、それをSystem.Data.DataSetに入れているのですか、または単にActiveReportsにクエリを渡していますか? クライアントのデータタイプは何ですか? System.DateTimeまたはSystem.DateTimeOffset? –

答えて

-1

私たちは、この問題は、日付の文字列表現をシリアライズすることです対処方法。

文字列の日付のプロパティ実装は、実際の日付プロパティとの適切な変換を実行します。例えば

[NonSerialized] 
    public DateTime MyDate { get; set; } 

    [System.Xml.Serialization.XmlAttribute("MyDate")] 
    public string MyDateString 
    { 
     get 
     { 
      if (MyDate.Equals(DateTime.MinValue)) 
      { 
       return string.Empty; 
      } 
      else 
      { 
       return MyDate.ToShortDateString(); 
      } 
     } 
     set 
     { 
      DateTime dtTemp = DateTime.MinValue; 
      if (DateTime.TryParse(value, out dtTemp)) 
      { 
       MyDate = dtTemp; 
      } 
      else 
      { 
       MyDate = DateTime.MinValue; 
      } 
     } 
    } 
+0

お返事ありがとうございました。私はこれをサポートするためにアプリケーションを再設計しなければならないと疑っていませんでした。私はここで何を欠場したのですか? –

関連する問題