Linux 的时间和 wine 程序的显示时间

2019-07-13 16:54:00 +08:00
 gbcbooks

大家有没有遇到这样的问题,linux 的设置的时间如下:

       Local time: Sat 2019-07-13 16:50:42 CST
       Universal time: Sat 2019-07-13 08:50:42 UTC
             RTC time: Sat 2019-07-13 08:50:42
            Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
          NTP service: active
      RTC in local TZ: no

而用 deepin 运行的 QQ 的显示的时间是 UTC 时间. 时区不对.

3785 次点击
所在节点    Linux
8 条回复
BingoXuan
2019-07-13 17:03:21 +08:00
Windows 时间会认为当前时间是当前市区的时间,市时区设置为东八区,时钟的 8 时就是东八区当地时间八时。而 Linux 是当前时间是 utc 时间,加上时区的 offser,也就是时钟是 8 时,加上东八区+8 小时的偏移,当前时间就是东八区当地时间 16 时。

个人觉得 wine 遵循了 Windows 这一设置导致的
niushiqi
2019-07-13 17:18:11 +08:00
我们 mysql 数据库时间我都看不懂,不是 utc 也不是北京时间,后来搜了一下貌似是世界时间 a 开头那个,不知道谁设的.
Buges
2019-07-13 17:21:52 +08:00
deepin 的时间有点问题。每次开了 deepin 再回 win 时间都会错误,后来换了其他 manjaro 就不会了。
gbcbooks
2019-07-13 17:53:57 +08:00
@BingoXuan 怪就怪在, 我用 deeping wechat , 时间是对的, 但是用 deeping tim, 和 deeping wxwork, 时间显示就是用的 UTC
BingoXuan
2019-07-13 18:39:31 +08:00
@gbcbooks
那就很诡异了,也许和 wine 官方提一下或者看看其他人有没有类似问题
gbcbooks
2019-07-15 11:35:20 +08:00
@BingoXuan 你觉得 wine 有关而不是 deepin
BingoXuan
2019-07-15 11:42:55 +08:00
@gbcbooks
deepin 运行 qq 底层是 wine。按道理来说,获取当前时间是需要通过 wine 的实现的 api 获取的,如果大家都使用同一个 api,不可能会有不一样的结果。很有可能有多个获取时间的 api,从而导致不同。如果和 deepin 有关的话,那 deepin 应该花了很多时间修改 wine 的内部东西。
gbcbooks
2020-11-12 02:06:12 +08:00
今天加班到零晨 2 点, 把问题解决了
来更新一下这个问题的解决方法
首先, 问题产生的原因是, 我的环境变量中 /etc/profile 中, 有一个 export TZ=Asia/Shanghai , 的变. 把这个释注掉就可以了

可能的原理是, 我的桌面环境在启动时, 即使不加这个 export TZ=Asia/Shanghai , 也是能正常读到时区的. 但是, 当 /etc/profile 又多加了一次 export TZ=Asia/Shanghai 之后, 说到的时间就不准了. 从而导致 deepin-qq 和 deepin-wxwork 的时区不对了.

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

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

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

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

© 2021 V2EX