以文本方式查看主题 - 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/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又不支持日期显示。
|
-- 作者: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客户端在显示时不要进行时区的转化,这样储存和重新加载过程都没有时区转化,就解决了根本问题了。 |