これは、ユーザーの住所または郵便番号があり、それを使用してタイムゾーンを検索し、別のフィールドに入力する必要がない場合に役立ちます。
5 に答える
ユーザーの郵便番号からタイムゾーンを推測しようとしないことをお勧めします。
ユーザーへの質問:
「郵便番号は何ですか」はあまり頻繁に変更されない可能性があります。
変更されますが、「現在のタイムゾーン」という質問ほど頻繁ではありません。
たとえば、ユーザーがどこかに旅行した場合、郵便番号は変更されていませんが、タイムゾーンは変更されています。
「あなたはどの郵便番号を使用していますか?」と尋ねようとすると、ユーザーはおそらく、特に旅行中かどうかわからないでしょう。
代わりに、タイムゾーンが直接何であるかを理解しようとします。
ほとんどのプラットフォームは、これを行う方法を提供します。
たとえば、.NET用のデスクトップソフトウェアを作成している場合は、次の方法でこれを行うことができます。
- TimeZoneInfoクラスを使用して現在のタイムゾーンを取得する、または
- サーバーからクライアントにすべての時間をUTC時間で送信し、DateTime.ToLocalTimeを使用してUTC時間を現地時間に変換します。
または、Webソフトウェアを作成している場合は、Javaスクリプトを使用してユーザーのWebブラウザーからタイムゾーンを取得し、サーバーに送信できます。
次の日付関数を見てください。
http://www.w3schools.com/jsref/jsref_obj_date.asp
さまざまな日付関数を使用してタイムゾーンを推測できます。
メソッド「getTimezoneOffset」がありますが、+/-は与えられません。したがって、たとえば、+1GMTと-1GMTの両方に「1」が表示されます。これは問題になる可能性があります。
ただし、サーバーから既知の日付を送信し、変換方法を使用してそれを現地時間に変換してから、結果をサーバーに送り返すことができます。
既知の日付を送信するときは、おそらくミリ秒のオフセットとして送信する必要があります。そうすれば、文化の問題を回避できます(日付は場所によってフォーマットが異なります)。
タイムゾーンを提供するWin32関数があり、同じことを実行するUnix、Mac、およびJavaAPIがおそらく存在すると確信しています。
郵便番号とタイム ゾーン情報を提供するデータ セットがあったことを思い出します。このデータ セットは、おそらく USPS、国勢調査、または NOAA (天気予報用) のいずれかから取得されたものです。
申し訳ありませんが、それ以上の情報を提供することはできません。
これは、タイム ゾーン名とルールの Olson データベースを作成した AD Olson が運営するタイム ゾーン メーリング リストで最近議論されました。単一の単純な情報源はありません (これは驚くべきことではありません。多くの国があり、多くの異なる規則があります)。
私が見つけてブックマークした情報の場所の 1 つは、www.geonames.orgです。これは特に 2008 年 9 月のことでした。Elsieから匿名 FTP でメーリング リストのアーカイブをダウンロードできます(約 17 MB、90 年代前半とまではいかなくても、90 年代前半にさかのぼります)。電子メールには、ESRI が情報源として記載されています。
はい - geonames.org などのジオコーダーを使用して、郵便番号から緯度、経度を取得できます (ジオコーダーにはタイムゾーンが含まれているか、そのための別の Web サービスがある場合もあります)。
ジオコーダーがそれを行わない場合、緯度と経度が与えられれば、この Web サービスからタイムゾーンを取得できます。
GeoIP を使用して IP アドレスから緯度/経度を取得し、タイムゾーンに変換するための緯度/経度を取得できます。
Web サービスを呼び出すか、自分でデータベースをダウンロードできます。
ただし、注意点があります。
- ユーザーがプロキシ サーバーを持っている場合は、プロキシ IP を取得します。
- 一部の IP は変換されません