登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
在美国西雅图时区问题导致的订单库存悲剧!!! ...
在美国西雅图时区问题导致的订单库存悲剧!!!
[ 复制链接 ]
堠秉
2025-11-19 14:20:05
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
一、 背景
国内的developers在互联网应用开发过程中大多不会考虑时区问题,毕竟我们的业务大多数是面向国内的,大家统一使用北京时区,基本没有问题,但是如果你的app没有限制只能在国内访问,那么就很有可能出现问题,我们近期的一个问题case就暴露了这一问题,接下来我会详细说明这一问题的过程。
这里买个关子:你知道美国西雅图时间2025-10-13 00:00:00在中国的时间是什么吗?
二、悲剧过程
业务规则是:当天下的订单只能锁定最早明天的库存,否则就会异常。
默认情况下,前端显示给用户看到的订单开始时间是当前时间(用户当前所在地的时区)的次日零点,一美国西雅图用户在2025-10-12 17:05:34下单,那么此时用户看到的订单开始时间是2025-10-13 00:00:00(夏令时期间)。
由于美国西雅图夏令时期间使用UTC-7时区,而北京时间使用UTC+8时区,两地时差为15小时(北京时间 = 西雅图时间 + 15小时),所以此时是中国的2025-10-13 15:00:00。
订单系统一看:大胆!!!怎么能下当天的库存?随即扔出一记Exception,库存异常。
三、时间戳
细节过程涉及到一个时间戳的概念:
时间戳是以毫秒为单位表示的时间戳,通常是一个13位整数。它表示从1970年1月1日00:00:00 UTC(Unix纪元)开始经过的毫秒数。这个特定时间点被称为"Unix纪元",是计算机系统中广泛使用的时间基准。
这里有个隐含的知识盲区,那就是,同一个时刻地球上获取到的时间戳是相同的,但是由于时区不同显示的本地时间也是不同的。
回到刚才的case,前端传给后端的时间戳是:1760338800000(对应美国西雅图2025-10-13 00:00:00),但是这个时间戳在中国就是2025-10-13 15:00:00
四、解决方案
解决方案有很多种,其中一种较为常见的方式是如下:
1. 使用服务器时间、以北京时间为准。
2. 添加服务时间check。
3. 用户侧告知时间为北京时间。
需要注意的是,当使用服务器时间的时候,服务端传给前端的时间就不要给时间戳了,给个yyyy-MM-dd HH:mm:ss格式的字符串吧!
五、总结
最后厚着脸皮个自己上线的小游戏打个广告
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
美国
西雅图
时区
问题
导致
相关帖子
最小二乘问题详解6:梯度下降法
读浪潮将至02遏制问题
美国股票市场数据API的完整对接指南
最小二乘问题详解4:非线性最小二乘
最小二乘问题详解7:正则化最小二乘
koupleless demo依赖问题
Office 已知问题 GROOVEEX.DLL 带崩进程
面试官问我:线程锁导致的kafka客户端超时,如何解决?
线上遇到的redis和数据库数据未同步问题、redisson内部实现问题
STM32F103ZET6开发板串口只发不收问题解决
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
最小二乘问题详解6:梯度下降法
2
992
诉称
2025-10-28
安全
读浪潮将至02遏制问题
4
55
峰襞副
2025-10-30
安全
美国股票市场数据API的完整对接指南
2
324
铜坠匍
2025-10-30
业界
最小二乘问题详解4:非线性最小二乘
2
636
茅断卉
2025-10-30
业界
最小二乘问题详解7:正则化最小二乘
2
236
欧阳雪枫
2025-10-31
安全
koupleless demo依赖问题
3
498
寅斫
2025-11-08
安全
Office 已知问题 GROOVEEX.DLL 带崩进程
1
205
魁睥
2025-11-20
安全
面试官问我:线程锁导致的kafka客户端超时,如何解决?
0
381
冷晓晴
2025-11-29
安全
线上遇到的redis和数据库数据未同步问题、redisson内部实现问题
0
361
柏雅云
2025-11-30
安全
STM32F103ZET6开发板串口只发不收问题解决
0
423
辜酗徇
2025-12-03
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
堠秉
2025-11-19 14:20:05
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845355
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多