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








网友评论