找回密码
 加入
搜索
查看: 7135|回复: 7

[系统综合] 如何限制系统日期格式

  [复制链接]
发表于 2013-8-29 10:35:30 | 显示全部楼层 |阅读模式
因为系统日期格式里有:
yy.m.d
yy-m-d
yy/m/d

此时
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", "13-8-1 19:57:00" )
是不能进行比较的,得出结果为0,同样,如果用户把系统格式设置为以上三种其中一种,那么
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc())
也是不能进行比较的,得出的结果为0.

因此请教高手,如何通过AU3,限制系统日期格式,避免用户设置以上三种格式,即只能设置以上三种之外的格式,如2013/01/01,或2013-01-01,或2013.01.01等年份为四位数的格式呢?
 楼主| 发表于 2013-8-29 11:34:33 | 显示全部楼层
自己给自己找了一种方法,修改注册表
[HKEY_CURRENT_USER\Control Panel\International]
sShortDate的值,其中月份要大写

各位还有其他的解决方法不,因为修改注册表一些杀毒软件会拦截...
发表于 2013-8-29 20:19:47 | 显示全部楼层
感到很奇怪, 限制系统的时间格式与你比较时间有什么关系呢?
为了方便比较?直接用 _NowCalc 获取当前时间不就可以吗?
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc()) 返回0 难道不对吗?
楼主,你是从2100年穿越回来的?
 楼主| 发表于 2013-8-29 22:11:29 | 显示全部楼层
本帖最后由 chamlien 于 2013-8-29 22:16 编辑

回复 3# user3000

如果你把你的系统日期格式改为yy/M/d,或者yy.M.d
再来用$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc()) ,也可以把'y',改成'h'试试看,也是0的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-8-29 22:53:28 | 显示全部楼层
我这边测试没有问题,就算你把系统日期改成什么格式,他不会影响_NowCacl()函数返回的格式的,一切正常!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-8-30 09:10:33 | 显示全部楼层
用宏取各个时间量
@YEAR..... @HOUR .....
再字符串拼接成  _DateDiff 要求的格式"2013/01/01 00:00:00",
发表于 2013-8-30 09:18:53 | 显示全部楼层
date.au3里的函数 取时间本实际就是要用
@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC
这些宏 拼接起来的


以下是 date.au3内的 取当前时间的 _Now()函数源码

Func _Now()
        Return (_DateTimeFormat(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC, 0))
EndFunc

so .... 你懂的.........
发表于 2013-9-4 12:20:57 | 显示全部楼层
发帖赚钱,赚钱不容易的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 13:27 , Processed in 0.106480 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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