以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为什么Foxtable显示的时间不正确?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143808)

--  作者:mojunming189
--  发布时间:2019/12/5 1:41:00
--  为什么Foxtable显示的时间不正确?

有一个很困惑的问题:数据库里显示的时间是正确的,而加载到foxtable后显示的时间总是差4个小时?
数据库服务器在香港,Foxtable在阿联酋使用,时差4个小时。
我把两地的系统时间改成同一个时区,也不行。
打印的报表一定要是同一个显示的时间。怎么办?


图片点击可在新窗口打开查看此主题相关图片如下:2019-12-04时间显示不正确.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2019-12-04时间显示不正确2.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/12/5 9:44:00
--  
么见过这种问题。百度一下



--  作者:mojunming189
--  发布时间:2019/12/5 13:20:00
--  
这个不是数据库的问题,数据库储存的数据是正确的,但是到Foxtable前端显示的数据自动变了。
--  作者:mojunming189
--  发布时间:2019/12/5 13:23:00
--  
foxtable保存时,比方说2019-12-05 8:00,数据库里也是这个时间,但是等foxtable重新加载后,同样的时间就显示成了2019-12-05 4:00了(正好差4个时区)。
--  作者:有点蓝
--  发布时间:2019/12/5 14:18:00
--  
联系客服,提供这个数据库做测试
--  作者:mojunming189
--  发布时间:2019/12/6 18:11:00
--  
测试结果就是这样的:
截图中,左侧是在阿联酋打开的Foxtable客户端,右侧是香港云服务器上的Foxtable客户端,同样的数据行时间,左侧的比右侧的显示少4个小时。
而如果数据库用datatimeoffset类型,Foxtable又不支持日期显示。

图片点击可在新窗口打开查看此主题相关图片如下:2019-12-06时间显示不正确.jpg
图片点击可在新窗口打开查看


--  作者:mojunming189
--  发布时间:2019/12/25 11:54:00
--  
 请问,foxmail中有获取时区的函数吗?

分别获取香港数据库的时区和客户端的时区,用来对录入的时间自动进行修正

--  作者:有点蓝
--  发布时间:2019/12/25 12:08:00
--  
参考:https://docs.microsoft.com/zh-cn/dotnet/standard/datetime/index
--  作者:有点蓝
--  发布时间:2019/12/25 13:49:00
--  
Output.Show(Date.now) \'北京时间
Output.Show(DateTime.UtcNow) \'协调世界时

Dim dateTime2 = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time")) \'夏威夷时间
Output.Show(dateTime2 )

各个时区的id,用于上面红色部分
For Each o As object In TimeZoneInfo.GetSystemTimeZones()
    Output.Show(o.id & "," & o.DisplayName)
Next

--  作者:mojunming189
--  发布时间:2019/12/26 0:38:00
--  
试了多次,效果还是不理想。根本原因在于Foxtable在保存时间时,没有加上当前客户端的时区信息,而是直接将日期时间数据保存进了数据库——数据库放在其他时区的地方——中间没有进行时区转换。而在数据重新加载之后,显示的日期时间,却自动进行了时区的转化,所以造成了显示的不准。有没有办法,干脆都不要时区的转化——Foxtable客户端在显示时不要进行时区的转化,这样储存和重新加载过程都没有时区转化,就解决了根本问题了。