0
  • 使用 Visual Studio 2008、c#、.net 2.0。

我有一个包含调度 UI 部分的 Windows 窗体客户端应用程序,目前它仅位于伦敦办公室,具有标准日期时间选择器控件,所选时间保存在英国数据库 (GMT) 中,并且基于伦敦的服务器应用程序处理时间表。

需要将客户端推广到全球各个地点、香港、纽约等地,并允许他们设置根据伦敦服务器上的 GMT 时间运行的时间表。

我将在屏幕上贴上一个标签,上面写着“笔记时间表是 GMT” ,我需要的是一种展示日期时间选择器的好方法,该选择器始终显示并与数据库服务器的 GMT 时间同步,无论客户端应用程序在哪里运行

关于如何实现这一点的建议?谢谢。

4

3 回答 3

2

“GMT”时区不明确。在 Windows 上,它指的是 London 等人的时区,包括夏令时调整。在皇家天文台的格林威治,它指的是与 UTC 匹配且没有 DST 调整的时区。

显然,您希望避免这种可能的混淆。当您要求用户自己进行转换时,您会遇到大量错误。只有一种好方法可以做到这一点,允许用户在当地时区输入时间。立即将其转换为 UTC 并将其发送到服务器。从服务器返回的任何内容都应在显示之前的最后一刻转换回本地时间。

于 2010-03-15T19:33:21.460 回答
1

DateTime 对象能够使用 .GetUTCXXX() 从本地时间偏移到 UTC/GMT 时间,这将根据运行时中使用的当前全球化/本地化设置从本地时间实例转换为 UTC 偏移量。

此外,Globalization.CultureInfo 中还有一个 Timezone 对象,可用于将 UTC/GMT 时间调整为本地时间。

如果服务器是可联系的,您可以获取服务器上的本地时间并以这种方式更新您的日期选择器,但如果您只需要为日程安排“近似”时间并且不需要那种精确度,那么这可能是矫枉过正。

于 2010-03-15T18:39:41.140 回答
0

我不确定这是否能解决您的问题,但请查看Any+Time(TM) JavaScript Library。跳过有关 Date/Time 小部件的部分并查找有关 AnyTime.Converter 的信息,这是一个将字符串转换为 Date 对象并返回的对象。它现在包括 UTC 偏移量/时区的格式说明符,以及用于覆盖本地时间的选项(查看UTC 偏移量的文档部分,其中包括 utcFormatOffsetImposed 和 utcParseOffsetAssumed 的选项)。下一节中还有一个示例,它解释了如何获取本地时间并在 GMT 中显示它。如果您对此有任何疑问或问题,请通过联系页面提交以便快速关注。我希望这有帮助!

于 2010-04-24T04:54:04.750 回答