chamlien 发表于 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等年份为四位数的格式呢?

chamlien 发表于 2013-8-29 11:34:33

自己给自己找了一种方法,修改注册表

sShortDate的值,其中月份要大写

各位还有其他的解决方法不,因为修改注册表一些杀毒软件会拦截...

user3000 发表于 2013-8-29 20:19:47

感到很奇怪, 限制系统的时间格式与你比较时间有什么关系呢?
为了方便比较?直接用 _NowCalc 获取当前时间不就可以吗?
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc()) 返回0 难道不对吗?
楼主,你是从2100年穿越回来的?

chamlien 发表于 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的。

dreamneo 发表于 2013-8-29 22:53:28

我这边测试没有问题,就算你把系统日期改成什么格式,他不会影响_NowCacl()函数返回的格式的,一切正常!

veket_linux 发表于 2013-8-30 09:10:33

用宏取各个时间量
@YEAR..... @HOUR .....
再字符串拼接成_DateDiff 要求的格式"2013/01/01 00:00:00",

veket_linux 发表于 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 .... 你懂的.........

liuxuchun1985 发表于 2013-9-4 12:20:57

发帖赚钱,赚钱不容易的
页: [1]
查看完整版本: 如何限制系统日期格式