根据电话号码计算人的时区(GMT偏移量)?

时间:2009-01-26 21:04:26

标签: sql oracle

我已经根据他们的电话号码要求显示一个人的当地时间。我知道我们当地的GMT偏移,所以我可以通过我们将美国zip_code链接到GMT偏移(例如-5)的数据库表来处理美国电话。但我不知道如何转换非美国电话号码或国名(这些人显然没有邮政编码)。

如果您在意,我的雇主学院希望征求我们的校友捐款,并在合理的时间内完成。

很抱歉,我没有明确表示我正在考虑 HOME 电话号码。所以漫游不是问题。我正在寻找一些参考表或Oracle应用程序,我可以从中获取此信息。

谢谢,

7 个答案:

答案 0 :(得分:5)

佛罗里达州有两个时区,但许多国家只有一个。你需要这张表:http://en.wikipedia.org/wiki/List_of_country_calling_codes。通过查找NANPA国家的1和区号(与美国使用相同的1 +区号代码分配的国家/地区代码),从电话号码中解析国家代码,7代表俄罗斯或哈萨克斯坦。如果不匹配,请检查该号码是否以2位数的呼叫前缀之一开头,然后是3位数的前缀。

请记住,号码的前几位数字可能是国际拨号前缀,并且不是电话号码的正确部分。

对于跨越多个时区的国家/地区,请查看您是否可以从其国家电信监管机构获取分配信息。对于美国和其他NANPA国家/地区,请查看http://www.nanpa.com/

当然,您的结果将远非完美,但希望您能从睡眠中唤醒更少的客户。

答案 1 :(得分:1)

当地时间是一回事,但如果您有全球客户,也有当地习惯需要考虑。

人们通常在挪威早些时候上床睡觉(而且他们在同一时区)。

答案 2 :(得分:0)

您或许可以让电话公司为您提供位置数据(这些信息应该存在于地面线路中,并且必须存在于单元格中),但预计会付费。

答案 3 :(得分:0)

有些国家很容易,因为它们属于单一的时区。看看欧洲,只需使用国际拨号代码就可以增加数百万人。 +47适用于挪威等。

电话号码分配通常由国家电信管理局完成,因此您可以免费获取信息。

正如您已经知道的那样,这只会考虑默认时区,因为它们当时可能在地球上的任何地方。此外,时区之间的数字分配可能根本不存在,因此该方法存在问题,但可能有助于提供默认设置。

此致

答案 4 :(得分:0)

查看电话簿。我们有很多页面将区域代码映射到国家/省/州。然后你必须将地理位置映射到时区,但这非常简单。

答案 5 :(得分:0)

不可能。如果我向东行驶约400英里(美国西海岸),那么我将通过在YYY时区拥有一个XXX号码来打破你的算法。

现在,如果这是一部手机应用程序,似乎可以使用something called NITZ

答案 6 :(得分:0)

我认为Danie,Bortzmeyer和其他人都在考虑这个问题。它不是最大化调用窗口,而是找到一个可接受的时间。

让我们来看看美国,只考虑4个主要时区。假设我们定义为从上午10点到晚上7点可接受。我甚至怀疑挪威单身汉农民会在晚上7点之前到来。

因此,如果您知道手机在美国,请不要在下午1点之前拨打任何电话。这样,如果他们在纽约或洛杉矶,它仍然是在上午10点之后。晚上7点之后没有电话。谁在乎它是佛罗里达州的主要还是小时后的panhandle?达拉斯或埃尔帕索,也是同一州但不同的时区。对于美国,过滤AK和HI。唯一严重困难的国家是俄罗斯 - 众多时区。