网站通过两种方式确定您的时区:基于 IP 地址的地理定位(将 IP 地址关联到时区)以及 浏览器内置的 JavaScript API(直接读取设备设置的时区)。在 whatsmy.fyi 上可以查看与您连接关联的时区。
方式一:通过 IP 地址确定时区
IP 地理定位数据库除城市和国家信息外,还包含时区数据。每个 IP 地址根据其分配的 地理区域映射到对应时区。例如,上海的 IP 地址对应 Asia/Shanghai, 纽约的 IP 地址对应 America/New_York。
Cloudflare 在请求上下文中提供 cf.timezone 字段——即与您 IP 地址 地理定位关联的时区。whatsmy.fyi 就是这样读取您的网络时区的:直接从 Cloudflare 边缘数据中获取,无需调用外部 API。
方式二:JavaScript Intl API
JavaScript 的 Intl.DateTimeFormat API 允许浏览器读取设备设置的时区:
Intl.DateTimeFormat().resolvedOptions().timeZone
// → "Asia/Shanghai"这是您操作系统所设置的时区——不一定是您的实际位置。如果您启用了 VPN,IP 被 地理定位到德国,但设备设置的是 America/New_York,那么无论 IP 地址 如何,JavaScript API 都会返回美国时区。
IP 时区与浏览器时区之间的这种差异,是欺诈检测系统用来识别 VPN 用户或位置信号 不一致用户的信号之一。
什么是时区标识符?
时区标识符(如 Asia/Shanghai 或 America/Los_Angeles) 是 IANA(互联网号码分配局)时区数据库(也称 Olson 数据库)的一部分。这些是 地理名称而非 UTC 偏移量,因为 UTC 偏移量会随夏令时的调整而变化。
例如,America/New_York 冬季为 UTC-5(东部标准时间),夏季为 UTC-4(东部夏令时间)。使用完整的 IANA 标识符可以确保时间转换的准确性,无论 夏令时如何调整。
UTC 与 UTC 偏移量
UTC(协调世界时)是所有时区表达所依据的基准时间标准。特定时区的 UTC 偏移量 表示该时区在某一时刻比 UTC 快或慢多少:
Asia/Shanghai— UTC+8(无夏令时)America/New_York— UTC-5(冬季)/ UTC-4(夏季)Asia/Tokyo— UTC+9(无夏令时)Pacific/Auckland— UTC+12(冬季)/ UTC+13(夏季)
whatsmy.fyi 同时显示 IANA 时区标识符和实时计算的当前 UTC 偏移量。
时区检测的意义
时区数据用于:
- 活动调度与本地化:日历应用、会议调度工具和票务平台使用您的 时区正确显示时间。
- 内容个性化:根据您时区内的当前日期显示"今日新闻"。
- 欺诈检测:将 IP 时区与浏览器时区进行比较,作为众多一致性 信号之一。
- 法律与监管要求:某些服务针对不同时区/司法管辖区有不同规定。
常见问题
能隐藏我的时区不被网站获取吗?
可以通过开发者工具或浏览器扩展更改浏览器报告的时区。Firefox 支持使用privacy.resistFingerprinting 覆盖时区。但是,在不更改 IP 地址的 情况下更改时区可能会增加欺诈检测系统所关注的信号不一致性。
为什么 whatsmy.fyi 显示的时区与我设备的不同?
whatsmy.fyi 显示的是基于您 IP 地址地理定位的时区(来自 Cloudflare)。这是与您 IP 地址关联的时区,可能与设备设置的时区不同——尤其是在使用 VPN 或出行途中。
时区与 UTC 偏移量有什么区别?
UTC 偏移量(如 UTC+8)是一个固定数字,不考虑夏令时。时区标识符 (如 Asia/Shanghai)则编码了该地区偏移量变化的完整历史,包括夏令时 切换。进行可靠的时间计算时,请始终使用 IANA 时区标识符。



