时间戳和时区

作者: CoderMonkey | 来源:发表于2025-04-05 01:49 被阅读0次

1、背景

最近正在做海外电商业务,海外电商业务和国内电商业务相比,对系统冲击最大的一个点就是对时间的处理,之前做国内业务不需要考虑时区的问题,对于时间的展示可以直接使用系统默认的时区,但是海外系统对于时间的展示需要考虑不同时区,所以需要搞清楚时区对于时间展示的影响。

如果想先直观的看到什么是时区,什么是时间戳:带时区的时间戳转换工具

2、什么是时间戳

首先先来看看时间戳的定义:时间戳是从1970年1月1日00:00:00 UTC(协调世界时)开始经过的秒数(Unix时间戳)或毫秒数(如Java的System.currentTimeMillis())。其核心特点是与时区无关,同一时刻全球任何地方的时间戳值相同。

从上面的定义可以看出来,时间戳就是一个数字,对于全球各地同一时间,这个数字都是相同的,那为什么平时会出现纽约时间比北京时间晚12个小时的说法?比如北京时间是2025年4月5日15点53分,对应的纽约时间是2025年4月5日3点53分。这就要引出后面的要说的时区这个概念了。

3、什么是时区

3.1 定义

时区是根据地球经度划分的时间区域,目的是协调全球不同地区的时间差异。每个时区覆盖约15度经度范围,理论上全球划分为24个时区(东、西各12个),以格林尼治天文台所在的零时区(中时区)为基准,相邻时区间相差1小时。但是在实际划分中,时区边界常因国家行政便利或地理特征(如国界、山脉)调整,而非严格按经线划分。例如,中国横跨5个理论时区,但全国统一采用东八区时间。

3.2 为什么要设计出时区概念

1、地球自西向东自转,导致不同经度地区日出时间不同。例如,上海日出时,伦敦仍需等待8小时才能见到太阳。若各地使用本地太阳时,跨区域交流(如交通、通信)会因时间计算复杂化而产生混乱。

2、1884年国际经度会议确立时区制度,以格林尼治时间为基准,使全球时间换算有统一规则。

正是因为要解决不同地方的人们对日常生活中的时间感知上的不同,所以设计出时区来是非常有必要的,但是任何事情都是有两面性的,时区出现之后系统中对于时间的处理就变的复杂了。

4、时间的展示

海外电商的用户是面向全球的,所以在不同的业务场景下,需要结合时区展示时间。下面举几个例子

4.1、下单时间的展示

对于不同地区下单的用户,用户的下单时间在后台时以时间戳的形式存储的,在用户的订单列表、订单详情页面需要展示用户的下单时间,那这个下单时间就要以用户下单时的时区为准进行展示。当用户切换地区时,下单时间并不会随着一起变化。

4.2、活动结束时间的展示

对于电商平台,经常会有一些促销活动,需要展示促销活动的结束时间,对于平台的促销活动的结束时间一般后台都是设置的截止时间戳,但是页面上展示促销活动结束时间需要根据用户选择不同的地区进行展示,所以用户选择不同的地区,看到的截止时间不同。

相关文章

  • 时间戳和时区

    Unix时间戳(Unix timestamp),Unix时间(Unix time)、druid POSIX时间(P...

  • 时间序列

    时区表示 时区转换 时间跨度转换 时期和时间戳之间的转换

  • 时间戳、时间和时区

    时间戳 时间戳是容易理解的。 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年0...

  • PostgreSQL时间戳与时区

    时间戳类型 PostgreSQL 提供两种存储时间戳的数据类型: 不带时区的 TIMESTAMP 和带时区的 TI...

  • 时区、时间戳、 时区、格林威治(GMT)、协调世界时(UTC)的

    时区和时间戳 从漫画中举的例子来看,这里的时间戳,指的就是Unix时间戳(Unix timestamp)。它也被称...

  • NSDate

    创建时间: 时间增减: 时间戳: 日期比较: 设置日期格式: 获取所有时区名称: 设置时区: 将时区配置给date...

  • python时间戳、datetime和时区

    结果是 但是我的认知中,timestamp是与时区无关, 应该是不会改变的所以这个结果为什么两次输入的timest...

  • 时区和时间戳的关系

    时区指地球上的一块区域使用的同一时间定义,以经度划分,每个时区横跨15经度,总共24个时区,东西各12个时区。 时...

  • iOS 时间戳 时区

    时间戳 时间戳(Unix)是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日...

  • 日期和时间函数 date 的使用

    pytz:设置时区 time.time():获取当前时间的时间戳 time.localtime():输入时间戳返回...

网友评论

    本文标题:时间戳和时区

    本文链接:https://www.haomeiwen.com/subject/thyakttx.html