0

デフォルトの実行可能ファイルの代わりに、.NET 実行可能ファイルによって取得される 'Timezone' 環境変数を設定したいと考えています。

具体的にTimeZone.CurrentTimeZone()は、デフォルトではなく、オーバーライドするタイムゾーン情報を返します。

「TZ」変数を使用して、C++でこれを実行できることを私は知っています。.Netでも可能ですか?

アップデート

これについて明確でなくて申し訳ありません: 私はソース コードにアクセスできません。基本的に、私が望むのは、実行可能ファイルを実行して、タイムゾーンがマシンのデフォルト以外であると思わせることです。

4

3 に答える 3

4

具体的には、TimeZone.CurrentTimeZone() は、デフォルトではなく、優先タイムゾーン情報を返します。

それは難しいでしょう。

システムのタイムゾーン ID を渡して使用する方が、侵襲性がはるかに低くなる可能性がありますTimeZoneInfo.FindSystemTimeZoneById。次に、実際のシステムのデフォルトのタイムゾーンに依存するのではなく、「デフォルトのタイムゾーン」が必要になるたびに明示的に使用します。

TimeZone基本的には、可能な限り放棄する必要があります。に比べて機能が非常に貧弱TimeZoneInfoです。(個人的には、野田時間プロジェクトも放棄TimeZoneInfoして使用しますが、それは少し別の問題です;)

于 2013-03-18T08:27:11.577 に答える
0

Environment.GetEnvironmentVariableメソッドを使用すると、.NET コードから任意の環境変数の値を取得できます。ただし、環境変数を最初の場所に設定するには、外部メカニズムを使用する必要があります。また、変数の値は任意の文字列である可能性があるため、取得した値の形式を検証する必要があります。

于 2013-03-18T08:19:46.440 に答える
0

System.Environment.GetEnvironmentVariable("Timezone")メソッドを使用して環境変数を取得できます。

于 2013-03-18T08:20:48.407 に答える