0

我希望设置一个“时区”环境变量,它将由 .NET 可执行文件而不是默认的可执行文件拾取。

具体来说,TimeZone.CurrentTimeZone()将返回最重要的时区信息,而不是默认值。

我知道这可以在 C++ 中使用“TZ”变量来完成。在.Net中也可以吗?

更新

很抱歉没有更清楚地说明这一点:我无权访问源代码。基本上,我想要的是运行一个可执行文件,让它认为时区不是机器的默认值。

4

3 回答 3

4

具体来说, TimeZone.CurrentTimeZone() 将返回最重要的时区信息,而不是默认值。

这会很棘手。

传递系统时区 ID 并使用TimeZoneInfo.FindSystemTimeZoneById. 然后在每次需要“默认时区”时明确使用它,而不是依赖真正的系统默认时区。

TimeZone基本上你应该尽可能地放弃。与TimeZoneInfo. (就我个人而言,我也会放弃TimeZoneInfo并使用我的Noda Time项目,但这是另一回事;)

于 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 回答