我们有一个安排约会的系统,总部设在英国。项目经理使用它来安排英国员工和澳大利亚员工的预约。
PM将在周一上午9点预约,但这与地点无关;也就是说,当一名英国工作人员看到它时,他/她在英国时间上午9点读到它,当一名澳大利亚工作人员读到它时,他们将其读作澳大利亚时间早上9点。
我编写了一个Outlook插件,可以显示这些预订并允许选择它们。问题是,当插件在澳大利亚运行时,它会看到日期时间来自英国,并增加了时差。因此,澳大利亚工作人员的任命在他们不应该被取消时被抵消。
我正在使用Infragistics Schedule控件,并想知道最好的方法是确保9am约会在所有位置显示为上午9点并且未应用偏移量?
谢谢, Drammy
答案 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())。
你应该做一些测试,以检查一切是否符合预期。