递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 658|回复: 10
打印 上一主题 下一主题

[视窗] 关于32位火山pc和易语言2038崩溃问题

[复制链接]

4

主题

55

帖子

769

积分

高级会员

Rank: 4

积分
769
跳转到指定楼层
楼主
发表于 2025-1-20 21:30:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上看了用32位时间戳计数器的32位程序在2038年崩溃。有大佬说 易语言到2038年的时候  HOOK一下就能解决,不是问题。

易语言到2038还管用么?火山pc 32位受不受影响呢。
回复

使用道具 举报

36

主题

328

帖子

2570

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2570
沙发
发表于 2025-1-20 22:14:12 | 只看该作者
本帖最后由 兵三进一 于 2025-1-21 12:59 编辑

2038年什么概念?
回复

使用道具 举报

4

主题

196

帖子

1631

积分

核心用户

用户组:菜鸟用户

Rank: 9Rank: 9Rank: 9

积分
1631
板凳
发表于 2025-1-20 23:13:14 | 只看该作者
指的是时间戳超过2038-1-19, 返回负数吧..   易语言   * “-2147437696000”

火山好像不会2147454848
死活学不会
回复

使用道具 举报

28

主题

2033

帖子

7427

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7427
地板
发表于 2025-1-20 23:50:30 | 只看该作者
有问题的是unix时间戳,用有符号32位整数存储的话,到2038年就会数值溢出,出现计时错误。如果用无符号32位整数,则可以维持到2106年,如果改用64位长整数,那大概到太阳毁灭也用不完。

而易语言和火山的默认日期时间型并不是unix时间戳,而是微软的变体时间,类型是双精度小数,并不存在这种问题。

综上,只要你用了unix时间戳,易语言和火山和所有编程语言都会有这个问题,你自己修改代码,用长整数存储时间戳即可。
回复

使用道具 举报

117

主题

713

帖子

4601

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4601
5#
发表于 2025-1-21 01:46:00 | 只看该作者
Xelloss0618 发表于 2025-1-20 23:50
有问题的是unix时间戳,用有符号32位整数存储的话,到2038年就会数值溢出,出现计时错误。如果用无符号32位 ...

X总太专业了,强的可怕
QQ 89075309
回复

使用道具 举报

4

主题

55

帖子

769

积分

高级会员

Rank: 4

积分
769
6#
 楼主| 发表于 2025-1-21 09:08:31 | 只看该作者
Xelloss0618 发表于 2025-1-20 23:50
有问题的是unix时间戳,用有符号32位整数存储的话,到2038年就会数值溢出,出现计时错误。如果用无符号32位 ...

多谢大佬答疑解惑 感谢
回复

使用道具 举报

4

主题

55

帖子

769

积分

高级会员

Rank: 4

积分
769
7#
 楼主| 发表于 2025-1-21 09:09:52 | 只看该作者
本帖最后由 heqianli 于 2025-1-21 09:13 编辑
yuangao 发表于 2025-1-20 23:13
指的是时间戳超过2038-1-19, 返回负数吧..   易语言   * “-2147437696000”

火山好像不会2147454848 ...

易语言本体在设计的时候  本体内部是否调用那个时间戳了  到2038吴总是不是也得小改一下易语言本体
回复

使用道具 举报

28

主题

2033

帖子

7427

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7427
8#
发表于 2025-1-21 10:49:20 | 只看该作者
heqianli 发表于 2025-1-21 09:09
易语言本体在设计的时候  本体内部是否调用那个时间戳了  到2038吴总是不是也得小改一下易语言本体 ...

易语言不知道,但参考火山官方时间类的源码,它基本没有用到unix时间戳。
C/C++里的时间戳类型是time_t,只要不是上古编译器(VS 2005之前),这个类型已经被改成长整数了。
当然,易语言用的是VC 6,官方库但用到时间戳的地方应该比较少,或者没有。
回复

使用道具 举报

4

主题

55

帖子

769

积分

高级会员

Rank: 4

积分
769
9#
 楼主| 发表于 2025-1-21 13:54:34 | 只看该作者
Xelloss0618 发表于 2025-1-21 10:49
易语言不知道,但参考火山官方时间类的源码,它基本没有用到unix时间戳。
C/C++里的时间戳类型是time_t, ...

那就放心使用了   感谢X大
回复

使用道具 举报

4

主题

55

帖子

769

积分

高级会员

Rank: 4

积分
769
10#
 楼主| 发表于 2025-1-21 13:56:30 | 只看该作者

13年 快得很 一眨眼的事
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-2-6 00:26 , Processed in 0.099160 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表