我们有一个安排约会的系统,总部设在英国。 项目经理使用它来安排英国员工和澳大利亚员工的约会。
PM将在周一上午9点的时间表中安排约会,但这与地点无关; 即,当英国工作人员看到它时,他/她将其读为英国时间上午9点,当澳大利亚工作人员阅读时,他们将其阅读为澳大利亚时间上午9点。
我编写了一个Outlook插件来显示这些预订并允许选择它们。 问题是,当插件在澳大利亚运行时,它看到日期时间来自英国并添加时差。 因此,澳大利亚员工在不应该的时候抵消了他们的任命。
我正在使用基础设施时间表控件,想知道确保上午 9 点约会在所有位置显示为上午 9 点并且不应用偏移量的最佳方法是什么?
谢谢德拉米
对我来说,最好的方法是始终在代码中的任何地方使用 UTC 日期时间。只有当显示时,您才能切换(或不切换)到良好的时区。
http://msdn.microsoft.com/en-us/library/system.datetime.aspx
区域设置/UTC 是使用 DateTimeKind 枚举 ( http://msdn.microsoft.com/en-us/library/shx7s921.aspx ) 定义的
始终使用 DateTime.ToUniversalTime() 获取 UTC 格式的日期时间 ( http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx )
(当然 ToLocalTime() 也存在)。
您应该做一些测试,以检查一切是否按预期进行。