【发布时间】:2011-07-01 14:07:11
【问题描述】:
我有一个 C# 应用程序,它将在与我开发它的地方不同的时区运行。它使用基于时间的数据,并根据基于时间的数据进行计算和决策。我想使用真实数据进行测试,所以想知道如何设置时区或类似的应用程序,就好像我在另一个时区一样,并且 DateTime 类型的所有变量都将使用这个默认时间?
【问题讨论】:
标签: c# datetime internationalization timezone
我有一个 C# 应用程序,它将在与我开发它的地方不同的时区运行。它使用基于时间的数据,并根据基于时间的数据进行计算和决策。我想使用真实数据进行测试,所以想知道如何设置时区或类似的应用程序,就好像我在另一个时区一样,并且 DateTime 类型的所有变量都将使用这个默认时间?
【问题讨论】:
标签: c# datetime internationalization timezone
最简单的方法是更改您机器上的时区,DateTime 类会使用该时区。
作为一般建议,我会以 UTC 进行所有时间相关的计算和时间存储,仅出于显示目的转换为本地时区。
【讨论】:
您需要设置运行应用程序的计算机的时区。
【讨论】:
DateTime 只有三种“模式”:DateTimeKind.Utc、DateTimeKind.Unspecified 和 DateTimeKind.Local。它不根据时区进行计算。它不会以任何方式抵消它。有一个 DateTimeOffset 可以帮助您(从 .NET 2.0 SP2 开始)
【讨论】:
您可以使用DateTimeOffset 课程吗? (当您使用紧凑框架时不是这样)。从它的 API 来看,它似乎很好地满足了你的需求。
【讨论】: