Foxtable(狐表)用户栏目专家坐堂 → 为什么Foxtable显示的时间不正确?


  共有3880人关注过本帖树形打印复制链接

主题:为什么Foxtable显示的时间不正确?

帅哥哟,离线,有人找我吗?
mojunming189
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
为什么Foxtable显示的时间不正确?  发帖心情 Post By:2019/12/5 1:41:00 [只看该作者]


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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/5 9:44:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/5 13:20:00 [只看该作者]

这个不是数据库的问题,数据库储存的数据是正确的,但是到Foxtable前端显示的数据自动变了。

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/5 13:23:00 [只看该作者]

foxtable保存时,比方说2019-12-05 8:00,数据库里也是这个时间,但是等foxtable重新加载后,同样的时间就显示成了2019-12-05 4:00了(正好差4个时区)。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/5 14:18:00 [只看该作者]

联系客服,提供这个数据库做测试

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/6 18:11:00 [只看该作者]

测试结果就是这样的:
截图中,左侧是在阿联酋打开的Foxtable客户端,右侧是香港云服务器上的Foxtable客户端,同样的数据行时间,左侧的比右侧的显示少4个小时。
而如果数据库用datatimeoffset类型,Foxtable又不支持日期显示。

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


 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/25 11:54:00 [只看该作者]

 请问,foxmail中有获取时区的函数吗?

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/25 12:08:00 [只看该作者]

参考:https://docs.microsoft.com/zh-cn/dotnet/standard/datetime/index

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/26 0:38:00 [只看该作者]

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

 回到顶部
总数 11 1 2 下一页