ruby-on-rails - 有没有办法根据地理编码位置获取时区的 UTC 偏移量?

标签 ruby-on-rails ruby timezone

当我有用户的地址或邮政编码并使用它来查找他们的时区时,这会很有用,这样他们就不必在单独的字段中输入它。

最佳答案

我建议不要尝试从用户的邮政编码推断出时区。

给用户的问题:

“您的邮政编码是多少”不太可能经常更改。

它会改变,但可能不如“你在哪个时区”这个问题那么频繁。

例如,如果用户去某个地方旅行,他们的邮政编码没有改变,但他们的时区改变了。

如果您尝试询问“您所在的邮政编码是什么?”,用户可能不会知道,尤其是当他或她正在旅行时。

相反,我会尝试直接找出时区。

大多数平台都会为您提供执行此操作的方法。

例如,如果您正在为 .NET 编写桌面软件,您可以通过

  1. 使用 TimeZoneInfo 类获取当前时区,或者
  2. 将所有时间从服务器以UTC时间发送到客户端,然后使用DateTime.ToLocal Time将UTC时间转换为本地时间。

或者,如果您正在编写网络软件,那么您可以使用 Java 脚本从用户的网络浏览器获取时区并将其提交到服务器。

看看下面的日期函数:

http://www.w3schools.com/jsref/jsref_obj_date.asp

您可以使用各种日期函数推断时区。

有一个方法“getTimezoneOffset”,但它没有给出 +/-。因此,例如它会为 +1 和 -1 GMT 给出“1”,这可能是个问题。

但是,您可以做的是从服务器发送一个已知日期,使用转换方法将其转换为本地时间,然后将结果发送回服务器。

当您发送已知日期时,您可能应该将其作为毫秒偏移发送。这样您就可以避免任何文化问题(不同地方的日期格式不同)。

有一些 Win32 函数可以为您提供时区,我相信可能有 Unix、Mac 和 Java APIS 可以做同样的事情。

关于ruby-on-rails - 有没有办法根据地理编码位置获取时区的 UTC 偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/366966/

相关文章:

java - 将 Ruby block 传递给 Java 方法

ruby - 创建一个可连接多个其他文件的 XML 文件

ruby-on-rails - 设计 + Rails 4.1 JSON API : user parameters are not wrapped

iOS 从时区获取地点值

ruby-on-rails - 如何将公共(public)代码移至一个由其他引擎共享的 Rails 引擎?

ruby-on-rails - 用ruby解析字符串路径名

ruby-on-rails - 用于特定作业的 ActiveJob 内联队列适配器

ruby-on-rails - 如何在 ActiveRecord 模型中创建默认关联?

mysql - 如何从 .Net 时区转换为 MySQL 时区

objective-c - 有没有办法让 Xcode 的调试器以本地时区(即非 UTC)显示日期?