C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法
原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T;微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式。曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的;当初一度放弃了这个问题。后来突然冷静分析了一下,微软不可能做的这么绝的吧。

从博客园里找到了一篇亲测有效的文章,有需要的可以去参考下。本文主要作为自己学习过程的问题记录,以加深自己的理解。


我的开发环境是.Net Framework 4.7.1下的WebAPI。直接调的ApiController自带的Ok(object content)方法,日期时间类型的格式问题如上描述。

1、框架在ApiController里面定义了很多现成的成员方法和属性。其中几个如下:

我所使用的就是最下面的方法。

2、其实,Json<T>方法是可以直接调用返回json数据给前端的;仔细查看发现,该方法的第一个重载方法有三个参数,第二个参数就是json序列化的相关设置。这给我们一个提示:我们可以自行调用Json<T>方法,序列化相关的设置参数根据自己的需要传一个Newtonsoft.Json.JsonSerializerSettings类型的对象过去即可。

3、但是,我是直接调用的框架的Ok方法,这个方法在框架内部是如何转json的我还不清楚(先挖个坑,日后明白了来填);也就是我并没有任何显示给序列化参数赋值的行为,那么可以推测,.net是不是从全局静态配置中读的呢?通过GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings拿到这个json序列化设置参数,据上面那位仁兄跟踪发现,这个值默认是"yyyy'-'MM'-'dd'T'HH':'mm':'ss"。那么原因显而易见了,.net取这个量调的Json<T>方法无疑了。或者说.Net下的Ok方法也是间接调用的这个方法实现的转json。

4、在WebApiConfig文件中重置GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings为自定义的时间格式即可。

posted on 2019-02-02 08:57 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10347510.html

C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法...相关推荐

  1. mysql数据库插入datetime_往MySQL数据库datetime类型字段中插入数据库的当前时间

    代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...

  2. 解决Entity Framework中DateTime类型字段异常

    从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值 具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServe ...

  3. SQL server中DateTime类型字段如何赋值零?

    .net 1.1 不支持Sql Server  datetime字段为空的情况 .net 2.0  开始支持Sql Server datetime字段为空 在不支持datetime为空的情况下, Sq ...

  4. mysql与mssql中datetime类型字段问题_excel数据存入sqlserver过程中,遇到Datetime的格式问题。...

    先讲一下我实现的大致思路: 1 读取excel数据,赋值到datatable中,然后在页面上显示 细节描述:有一些列是存到数据库时要是datetime格式的,我在赋值到datatable时也是做 如下 ...

  5. python mysql写入速度加快_解决python写入mysql中datetime类型遇到的问题

    解决python写入mysql中datetime类型遇到的问题 发布时间:2020-08-31 16:46:47 来源:脚本之家 阅读:89 作者:WilliamDescant 刚开始使用python ...

  6. python mysql驱动写入datetime类型的数据_解决python写入mysql中datetime类型遇到的问题...

    刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值.python程序中有对应的一个dateti ...

  7. SQLServer中Datetime类型转换为UnixTimestamp

    SQLServer中Datetime类型转换为UnixTimestamp Datetime类型转换为UnixTimestamp SELECT DATEDIFF(SECOND,{d '1970-01-0 ...

  8. 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题

    问题背景: 在使用asp.net mvc 结合jquery esayui做一个系统,但是在使用使用this.json方法直接返回一个json对象,在列表中显示时发现datetime类型的数据在转为字符 ...

  9. mysql java 获取周_Java中获取Mysql中datetime类型的数据

    由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetim ...

最新文章

  1. 广联达2018模板算量步骤_老师傅带你学造价,广联达GTJ2018图文详解,小白也能学会的软件...
  2. 皮一皮:他为我承受了太多太多...
  3. 找出数组中被其他元素整除的元素_「每日一题」数组中重复的数字
  4. 在Spring MVC中使用注解的方式校验RequestParams
  5. Nhibernate 3.0 cookbook学习笔记 配置与架构
  6. json字符串与json对象之间的转换
  7. 双系统win+ubuntu无法访问win的盘符
  8. macos系统镜像iso_Windows10操作系统iso镜像、微软正版软件下载站:MSDN,我告诉你...
  9. DirectX支配游戏 历代GPU架构全解析
  10. java 生成pdf文件加密
  11. Failed to introspect Class from LaunchedURLClassLoader
  12. 贝塞尔曲线与贝塞尔曲面
  13. ipad中的神级笔记软件 Notability的使用方法
  14. [简洁版]youtube-dl下载命令
  15. 设计模式 - 创建型设计模式小结
  16. \u, \x,0x区别
  17. TextView设置MaxLength
  18. 自动驾驶改变未来1~3
  19. 真正解决layer弹层遮罩挡住窗体的问题
  20. macOS Ventura 13 Beta3(22A5295i) 官方dmg镜像

热门文章

  1. [unity3d]导出安卓版设置
  2. iptables_默认规则
  3. Linux启动网卡时出现RTNETLINK answers: File exists错误解决方法
  4. asp导出EXCEL数字格式及自动适应宽度的问题
  5. Css中Position属性的含义
  6. sprint周期总结
  7. 科普| 什么是图数据库?
  8. If语句:你们到底想把我放到哪儿?
  9. 分布式的事务该怎么做?
  10. 从Java程序员的角度理解加密的那些事