如何修改系统短日期格式
时 间:2008-05-03 13:51:06
作 者:第7天 ID:668 城市:台州
摘 要:修改系统短日期格式
正 文:
本人在做应用程序时,发现在某些用户的机器上部分模块的查找和排序会出错,而且都和时间有关。经仔细检查得出结论如下:
在应用程序中使用 format("日期型数据","short date")把长日期格式成短日期,如果本地电脑系统的“短日期”格式不一样,会得到两种不同的结果。比如 同样是format("2008-5-1 23:01:20","short date")在短日期格式为"yyyy-m-d"的电脑上,得出的结果是"2008-5-1",而在短日期格式为"yyyy-mm-dd"的电脑上得到的结果是"2008-05-01"。说了半天,有什么不同?不都是表示同一天吗?
答案是:两种结果不同。因为被format格式以后的日期已经不再是日期了,ACCESS把它当作文本来处理。比如我们对三个文本进行升序排列:
第一种是:2008-4-30 ,2008-4-8,2008-5-1
第二种是:2008-04-08,2008-04-30,2008-05-01
可以看出两种不同的格式排序得到的结果是不一样的。使用between ....and...进行查找效果亦是如此。
所以我们大都喜欢自己的程序运行在短日期格式为"YYYY-MM-DD"的电脑上,这样我们格式成短日期以后的数据仍然可以正确的查找和排序。但往往事情并不是都按照理想的方向进行,有些用户的短日期格式就不是"YYYY-MM-DD",所以我们要对它修改。修改的代码如下:
Public Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
设置短日期格式
Public Const LOCALE_SSHORTDATE = &H1F Public Const LOCALE_SDATE = &H1D
'下面的过程可以帮你达到目的
sub setshortdate()
Dim llocal As Long
Dim sa As String
Dim lOk As Long
On Error GoTo ErrShow
sa = Space(20)
llocal = GetUserDefaultLCID()
lOk = GetLocaleInfo(llocal, LOCALE_SSHORTDATE, ByVal sa, 20)
If Trim(sa) <> "yyyy-MM-dd" Then
If MsgBox("您的系统日期不是(YYYY-MM-DD)格式,强烈建议您将它修改成该格式," & Chr(10) _
& "否则软件可能会出现运行障碍!" _
& Chr(10) & Chr(10) & "点击'是'将自动为您修改。", vbQuestion + vbYesNo, "忠告") = vbYes Then
sa = "yyyy-MM-dd"
llocal = GetUserDefaultLCID()
SetLocaleInfo llocal, LOCALE_SSHORTDATE, ByVal sa
End If
End If
sa = Space(2)
lOk = GetLocaleInfo(llocal, LOCALE_SDATE, ByVal sa, 2)
If Trim(sa) <> "-" Then
sa = "-&q
Access软件网QQ交流群 (群号:483923997)
Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access窗体导出PDF】...(04.08)
- 【Access窗体导出PDF】...(04.07)
- Access两种方式实现即时更...(03.01)
- Access隐藏与显示lacc...(01.12)
- 【Access高效办公】将每个...(12.23)
- Access21点游戏源代码(12.13)
- 【Access窗体导出Exce...(11.15)
- 【Access开发】Acces...(11.14)
- 通过Access宏录入数据到选...(11.10)
学习心得
最新文章
- 从另一个ACCESS数据库批量导入...(04.29)
- Access日期格式的数据导出Ex...(04.28)
- ACCESS精华集锦资料.CHM(04.25)
- Access VBA语句If Me...(04.24)
- 【Access修改记录示例】编辑选...(04.22)
- 【Access表名称命名建议】将A...(04.20)
- Access学习笔记--用Acce...(04.19)
- 【Access重复项查询示例】将A...(04.17)
- Access快速开发平台企业版--...(04.16)
- 【Access模块示例】通过模块代...(04.15)