手机开飞行模式微信不会调用系统时间吗?

323 天前
 kvibert1
手机开飞行模式,并且修改系统时间为一个不正确的时间,在微信里面发送一条消息,这条消息上面的时间为什么会显示一个正确的时间呢,难道微信不是调用的系统时间吗?
2208 次点击
所在节点    程序员
20 条回复
NoOneNoBody
323 天前
服务器时间
kvibert1
323 天前
@NoOneNoBody 已经开了飞行模式
finab
323 天前
我测试了一下
调整时间后,有网进入微信,这个时间显示的是正确时间,并且之后断网也一直正确
调整时间后,断网进入微信,这个时间就错了

也就是说,如果微信有网状态下与服务器通信了,会维护一个时间差值,之后的计算会加上这个时间差值来计算出正确的时间
finab
323 天前
另外 iPhone 的飞行模式,是不关 wifi 的
kvibert1
323 天前
@finab 请问你的微信版本号是多少呢
finab
323 天前
@kvibert1 8.0.29 ,最新版也一样
彻底断网后,调整时间,打开微信,时间就错了
NoOneNoBody
323 天前
你这样想:中国在早上发一条信息到美国西岸,对方收到显示的时间是什么?
因为跨国际日期变更线,如果只按发送方时间,接收方会显示一个“穿越”信息
微信逻辑如何我不清楚,我写的话就肯定以服务器进出时间为标准,客户端按本地习惯显示

其实不止微信,任何跨时区的服务,在处理显示时间的逻辑都不应按客户端为标准
我觉得你应该做这个测试才对:断网显示错误时间,联网后它会自动修正么?
kvibert1
323 天前
@finab 为什么我这边最新版 8.0.37 改成错误的时间再关闭网络连接,会显示正确的时间呢?
villivateur
323 天前
@NoOneNoBody 你举的例子不正确,时区跟时间是两个概念,全球不管哪里都是一个时间,只不过实际显示的时候会加上时区偏移
NoOneNoBody
323 天前
@villivateur #9
嗯,你从我的回复里面读到的只是时区?但我说的点是服务器和客户端

好吧,换个例子,A 、B 客户端时区相同,A 因为某些原因系统时间不准确,快了几分钟,发信息到服务器(网站或 SNS),B 马上看到,中间网络延时几秒等忽略,B 看到 A 的发帖时间是 A 客户端的“未来时间”么?服务器肯定要按自己标准调整的吧?

用时区举例只是增加距离感,易读而已
RiverMud
323 天前
@NoOneNoBody
@kvibert1
Android iOS 最新版都试了,复现不了,怎么搞都是正确时间。

我来重启试试
NoOneNoBody
323 天前
@RiverMud #11
我对你有种莫名的敬仰,一个无关使用的小问题,有反复求证的精神和耐心
我的话,估计试两次就“算了”

你是 OP 的小号么?
RiverMud
323 天前
重启后可以复现,虽然 iOS 和 Andorid 的情况不完全一样,但基本符合 @finab 的推论。

@kvibert1 你说的情况应该是进程完全没杀掉,完全断网改了时间杀了进程后重启下再打开微信发送信息试试。

上一条回复 @ 错了
RiverMud
323 天前
@NoOneNoBody 在摸鱼,嘿嘿。
kkocdko
323 天前
@NoOneNoBody #7 会使用 UTC 时间,不会有问题的。
jiuhuicinv
323 天前
但无网情况下发不出消息 有网了重发还是对的上正确时间 也就是说这个问题并不会扰乱消息记录时间轴
infun
323 天前
@RiverMud 分明是有求知探索精神,哪里摸鱼了
MC
323 天前
时间是服务器时间,显示时间按照你所在时区。
飞行模式下,只要是联网的,就会判断你的准确时区,然后微信根据你的时区来给你反馈时间。
kvibert1
322 天前
@RiverMud 最终确认是没有杀进程,重启一下手机就不会显示正确的时间了
placeholder
322 天前
我想知道安卓机如果开飞行模式,会不会全手机广播一下子,告诉各个应用,哥要飞行了,你们要干啥抓紧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/947256

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX