我们一直在使用IPLEGENCE Database pro来获取基于IP地址的用户时区。这里我有几个非配偶时区的布景。以下列出了
- EST+1
- PST-2
- PST-1
- GMT+12.75
我不确定上面列出的具体是什么。
有人能帮我把上面的时区转换成UTC吗。
谢谢你抽出时间。
以下是时区列表。东部时间几乎总是(夏令时重叠除外)GMT-5。格林尼治标准时间要么在UTC,要么休息一小时(同样是夏令时)。
EST+1 = GMT-4
PST-2 = GMT-10
PST-1 = GMT-9
如果您想将其转换为UTC,那么最好的方法就是使用DateTime对象。
这是一种表示时区的奇怪方式。我猜想GMT+12:45
指的是查塔姆群岛。不确定其他人,他们可能在任何地方。
IMHO,这种类型的数据有一些问题:
-
时区不是固定的偏移。当数据库提到EST时,它们的意思可能是"美国东部时间"。但这可能是指东部标准时间(EST)的-5小时偏移,或东部夏令时(EDT)的-4小时偏移。通过在数据中称其为"EST",他们将其固定为-5,而实际上可能是-4。请参阅时区标记wiki中的"时区!=偏移量"。
-
时区缩写可能不明确。例如,我怎么知道"EST"真的是指美国东部标准时间(-5)?它可能指的是澳大利亚东部标准时间(+10)。这里有一个列表,你可以看到有很多时区都有相同的缩写。
-
IP地理定位是一种"最佳猜测",不具备确定时区所需的准确性。这些数据库中的时区可能与列出的坐标相匹配,但您几乎无法保证用户实际位于这些坐标。它可能会为您提供代理服务器或网络路由器的位置。在公司网络上尤其如此,在某些情况下,你在另一个城市的公司办公室有一个IP,所有的互联网流量都通过该IP进行过滤。你会得到公司办公室的时区,而不是用户的时区。您可以在这里和这里阅读更多关于IP地理定位准确性的信息。
如果您通过其他方式(例如通过手机上的GPS数据)了解用户的坐标,则可以使用此处描述的几种不同技术之一。