日历控件中的时区

时间:2012-08-13 14:06:39

标签: c# datetime calendar timezone

我们有一个安排约会的系统,总部设在英国。项目经理使用它来安排英国员工和澳大利亚员工的预约。

PM将在周一上午9点​​预约,但这与地点无关;也就是说,当一名英国工作人员看到它时,他/她在英国时间上午9点读到它,当一名澳大利亚工作人员读到它时,他们将其读作澳大利亚时间早上9点。

我编写了一个Outlook插件,可以显示这些预订并允许选择它们。问题是,当插件在澳大利亚运行时,它会看到日期时间来自英国,并增加了时差。因此,澳大利亚工作人员的任命在他们不应该被取消时被抵消。

我正在使用Infragistics Schedule控件,并想知道最好的方法是确保9am约会在所有位置显示为上午9点并且未应用偏移量?

谢谢, Drammy

1 个答案:

答案 0 :(得分:1)

对我来说,最好的方法是始终在代码中的任何地方使用UTC日期时间。只有在表演时才能切换(或不切换)到好的时区。

http://msdn.microsoft.com/en-us/library/system.datetime.aspx

使用DateTimeKind枚举(http://msdn.microsoft.com/en-us/library/shx7s921.aspx

定义Locale / UTC

始终使用DateTime.ToUniversalTime()以UTC(http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx

获取DateTime

(当然也存在ToLocalTime())。

你应该做一些测试,以检查一切是否符合预期。