以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于电脑时间格式影响查询的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82970)

--  作者:jialihaha
--  发布时间:2016/3/29 9:53:00
--  关于电脑时间格式影响查询的问题
我发现,程序里关于日期的查询,对时间的格式有要求,一定要是yyyy-MM-dd,现在有些电脑是yyyy-M-d 
导致查询不出结果,如何解决这个问题呢?
是不是应该用代码去修改用户电脑的时间格式呢?


--  作者:黄训良
--  发布时间:2016/3/29 10:20:00
--  
Format(date.today(),"yyyy-MM-dd")
--  作者:大红袍
--  发布时间:2016/3/29 10:43:00
--  
 你可以统一电脑的日期格式,不然改代码很麻烦。
--  作者:jialihaha
--  发布时间:2016/3/29 11:03:00
--  
有没有能用代码自动去修改电脑的日期格式的
--  作者:大红袍
--  发布时间:2016/3/29 11:25:00
--  

试试 mark 代码设置短日期

 

全局代码

 

<DllImport("kernel32.dll", EntryPoint := "GetSystemDefaultLCID")> _
Public Function GetSystemDefaultLCID() As Integer
End Function
<DllImport("kernel32.dll", EntryPoint := "SetLocaleInfoA")> _
Public Function SetLocaleInfo(Locale As Integer, LCType As Integer, lpLCData As String) As Integer
End Function
Public Const LOCALE_SLONGDATE As Integer = &H20
Public Const LOCALE_SSHORTDATE As Integer = &H1f
Public Const LOCALE_STIME As Integer = &H1003

 

调用代码

 

Dim x As Integer = GetSystemDefaultLCID()
SetLocaleInfo(x, LOCALE_STIME, "HH:mm:ss") \'时间格式 
SetLocaleInfo(x, LOCALE_SSHORTDATE, "yyyy-MM-dd") \'短日期格式   
SetLocaleInfo(x, LOCALE_SLONGDATE, "yyyy-MM-dd") \'长日期格式
msgbox(Date.now)


--  作者:shenyl0211
--  发布时间:2016/5/5 13:47:00
--  
大红袍的这段代码应该写入帮助文档,这是每个项目都会遇到的问题。
每次项目启动时执行,不管三七二十一,直接修改系统日期格式,比每次检查系统日期格式更高效。

--  作者:lovebc299
--  发布时间:2016/5/25 17:49:00
--  
也就是说,我的服务器的日期格式,和我电脑的格式不一样对吗?
--  作者:Hyphen
--  发布时间:2016/5/26 8:15:00
--  
回复6楼,软件不应该动不动就更改系统设置,那无异于流氓软件,还是要在代码中控制好,以适应不同环境。
--  作者:Hyphen
--  发布时间:2016/5/26 8:17:00
--  
回复7楼,是的,不同电脑的日期格式可能会不一致,有些可能是手动更改过,有些可能是给软件默默修改过。
--  作者:wyz20130512
--  发布时间:2016/11/27 13:11:00
--  回复:(大红袍)试试 mark 代码设置短日期 ...
这段代码如何使用?请指点!!