国际化相关的问题与串的处理几乎可以解决的以下建议:使用Unicode和储存的一切,因为UTF-8在你的数据库,然后你就可以为客户提供服务的使用世界上所有的语言。

但是,我们的国际化问题相关的日期/时间处理?

问题:

  • 是否有类似的易于执行的最佳做法,用于解决国际问题时处理?
  • 你怎么确保你的应用可以为客户提供服务的工作在不同时区的?什么问题你有没有遇到你是如何解决这些问题?
有帮助吗?

解决方案

我有以下建议,

  1. 存储所有的时间在数据库的一个时区,最好祖鲁(GMT)。
  2. 分配一个时区,每个用户登记。通常我们弄清楚这一点从语言的登记页面或代码嵌入在促进链接。有时候,我们必须要求用户。
  3. 让客户时区意识。这意味着客户不能显示的时间从服务器。必须显示在当地的时区和地方的格式。
  4. 客户应作出一些努力,以获得时的信息的系统。如果没有,服务器可以猜测从各种数据。我们得到了良好的结果,使用第一语言,然后IP地址。在任何情况下,客户的需求,以显示时间带区域信息,以便用户的知道什么时候上的时间是错误的。
  5. 需要特殊标志的某一时间的价值不受影响的时区。我们有一个错误用户的生变化时,他们改变他们的区域设置。其他的事情属于这个类别包括节假日,商店营业时间等。
  6. 如果你有以同步的时钟与服务器,请不要改变系统的时间,只要存在三角洲你的客户。我们有一个安全的要求时必须是同步的主机。因此,我们的客户系统同步的时钟与我们的服务器上启动。这是错误的事情要做。老系统中,如Windows95没有时区,我们改变自己的时间为格林尼治标准时间。最后的老年客户走了但我们正面临一个新问题是,我们搞砸了准确的时间从NTP。

希望我们的一些错误将有助于避免他们。

其他提示

ZZCoder有一些好点。这里有一些更多的:

  • 所有datetime值必须有一个相关的时区。你应该定义意味着什么如果一日期时间没有一个(例如,在某些情况下,这将意味着GMT+0;在其他人这是因为代码中找出和分配)。
  • 你可能会需要将活动日期时间到一个位置。这意味着你将有一个办法搞清当一日期时间的时区是允许改变。这解决了问题的生日运动,但它也允许聪明的行为,当夏令开始或结束。然而,小心的意外关系:设置了一次会议于几个人在不同的时区应当参照一项规范条目的,不复制datetimes和本地化。
  • 不不 做自己的计算:总是 总是 总是 要求该图书馆的功能做到的日期时间计算。

我有一些运用该通过使用一些JavaScript有客户提前通知我们他们的时区。如果我记得它涉及计算的当前时间在用户的计算机在当地时间,然后进行比较,对祖鲁语。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top