zoukankan      html  css  js  c++  java
  • 使PetaPoco导致前端显示日期大8小时

    在新项目中遇到了前端显示日期与数据库数据对不上时一头雾水,

     前端时间: 数据库时间:

    上面对比可以看出,前端数据比数据库时间大八个小时。

    首先判断可能是转json格式出错,所以特地写个时间变量time测试经json转换后是否出错。

     控制器方法: 

     前台数据: 

     

     

    json转换后日期是时间戳,时间戳转换后可以看出date与控制器获取到的数据一致,而CreateDate则比控制器获取到的数据大八个小时,由此判断json转换是没有问题。

    后来展开time与CreateDate的Date详情发现两者DateTime.Kind分别为Local、UTC(Kind官方解释:该值指示由此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否)。

    到此,前端时间为什么比数据库时间大八个小时显然是由于DateTime.Kind设置为UTC后json转换时是根据本地时区UTC+08:00得出。

      

     

    为什么实体中DateTime类型的DateTime.Kind会是UTC,经过一番查找,发现是Petapoco框架中有个标准时间映射器

      

    修改DateTimeKind.UTC为DateTimeKind.Local,最终解决时间差问题。

      

  • 相关阅读:
    主成分分析
    8、特征选择
    7.逻辑回归实践
    6--逻辑回归
    《四分之四团队》:团队项目选题报告
    计算与软件工程 作业五
    计算与软件工程 作业四
    计算与软件工程 作业三
    计算与软件工程 作业二
    计算与软件工程作业一
  • 原文地址:https://www.cnblogs.com/binzi/p/9003185.html
Copyright © 2011-2022 走看看