rfc3339 是一种包含时区信息的字符串标准格式。格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。

例如:2015-05-20T13:29:35+08:00 表示,北京时间2015年5月20日 13点29分35秒。

要在 C# 中获取一个符合 RFC3339 标准的字符串,可以使用以下代码:

var str = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssK");
Console.WriteLine(str);

默认情况下,Newtonsoft.Json 序列化出的 JSON 字符串是不符合 RFC3339 标准的。以下代码演示了如何解决这个问题:

public class Rfc3339DateTimeConverter : IsoDateTimeConverter
{public Rfc3339DateTimeConverter(){this.DateTimeFormat = "yyyy-MM-ddTHH:mm:ssK";}
}
public class Model1
{[Newtonsoft.Json.JsonProperty(ItemConverterType = typeof(Rfc3339DateTimeConverter))]public DateTime CreatedTime { get; set; }
}

调用:

var test = new Model1
{CreatedTime = DateTime.Parse("2015-05-20T13:29:35+08:00")
};
var json = JsonConvert.SerializeObject(test);
Console.WriteLine(json);

输出:

{"CreatedTime":"2015-05-20T13:29:35+08:00"}

如果系统中获取到的时间不包含时区信息(比如从数据库或字符串转换),那么以上代码会省略掉对时区的输出:

var dt = DateTime.Parse("2015-05-20 13:29:35");
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssK"));

输出:

2015-05-20T13:29:35

要解决该问题,可以直接将时区信息写在格式中:

var dt = DateTime.Parse("2015-05-20 13:29:35");
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ss+08:00"));

C# 对接微信支付时生成符合 RFC3339 标准的日期时间字符串相关推荐

  1. java对接微信支付收不到支付通知问题(亲身实践)

    问题描述: 用java对接微信支付时,统一下单接口正常.但是用户扫码付款成功后,设置用于回调的notify_url对应的接口并没有收到请求(这个url测试过,是正常的且外网能访问的). 由于官方文档没 ...

  2. java 微信转账 ca_error_对接微信红包时:CA证书出错,请登录微信支付商户平台下载证书...

    今天在对接微信支付的微信红包发放时,出现""CA证书出错,请登录微信支付商户平台下载证书"的错误,特此记录一下: 如果你也在对接微信红包,并且你也在这个页面上下载了dem ...

  3. 对接微信支付之网页支付详解

    对接微信支付之网页支付详解 声明:转载请注明出处 阅读对象:本文针对的是网页中的扫码支付 温馨提示:微信支付坑比较多,阅读时请仔细一些,不要放过所有需要注意的内容 , 本人一路踩坑过来,希望大家引以为 ...

  4. node 对接微信支付的踩坑记录(服务端)

    因项目需要,对接了微信支付,微信支付对于网页来说没有什么工作量,申请了商户号后,直接将收款码放到网页上就可以,但是小程序需要调起微信支付直接付款,于是认真翻阅了官网要针对小程序做微信支付的对接. 准备 ...

  5. springboot 微信小程序 对接微信支付功能(完整版)

    微信小程序对接微信支付功能 业务流程时序图 JAVA版 1. 项目架构 2. pom.xml配置文件 3. 小程序账号参数配置类 4.JAVA 通用代码 4.1 工具类 4.1.1 IdGen (id ...

  6. android pos机对接微信刷脸支付时如何做到双屏异显-2020年10月9日

    --------------------越让你感到困难的东西其实内在越简单. 对接微信支付刷脸支付时出现的问题,因为我这边使用的是大屏的双屏异显的pos机,在做第二个屏幕显示的时候我使用的是prese ...

  7. beecloud对接——微信支付

    微信支付方式(https://pay.weixin.qq.com/sta...): 1.付款码支付--------适用于线下场所 2.JSAPI支付--------JSAPI支付是指商户通过调用微信支 ...

  8. 简易支付平台(已对接微信支付)

    序 最近H5开发的app需要对接微信支付,我想的是公司貌似开没有支付平台,听说了另一个项目也要对接支付.为了宇宙的和平,我想就提出来单做,所以说干就干,不考虑那么多,只要自己认可自己就行. 一.支付平 ...

  9. Java对接微信支付(完整全流程)

    Java对接微信支付及支付回调通知的全流程 一.所用框架.对接微信支付我们技术组用的是payment框架,因为该框架已整合springboot因此很方便快捷 <dependency>< ...

最新文章

  1. POJ 3414 Pots(罐子)
  2. DataTable / DataSet 与 xml 的相互转换
  3. 机房为什么要设计冷热通道,设计原则及如何施工?
  4. 华东交通大学2017年ACM双基程序设计大赛题解
  5. js部分---表单验证;(含正则表达式)
  6. 《Spring5官方文档》新功能(4,3)
  7. 这项技术曾应用于无人驾驶,荣耀10将其移植到手机上这样操作!
  8. 新浪igame连连看游戏截图
  9. 公众号写作排版指南教程v1.0
  10. C# 使用FastReport.NET打印报表
  11. sap的pod确认_PO确认控制
  12. 一个由2020年1月7日 京东出现的重大 Bug 漏洞引起的思考...
  13. 脑与认知科学基础(期末复习)
  14. Windows防火墙使用
  15. 哪家宽带网速是最好最快的?
  16. AGM FPGA之AG10K 系列的开发建议(连载二)
  17. 以复旦大学为例。我对复旦比较熟悉。
  18. mt7 android6.0 回退,Mate7 M版本(Android 6.0)B553发布说明及问题反馈
  19. 电子商务网站建设策划书范例
  20. 佛说爱情一:佛前的三支蜡烛

热门文章

  1. SQL Server 2008如何导出带数据的脚本文件
  2. Vlan和vtp重要的配置命令
  3. COM 组件设计与应用(六)
  4. spring boot拦截器中获取request post请求中的参数(转)
  5. sublime text3搭建react native
  6. ZooKeeper的工作原理
  7. js最全的十种跨域解决方案
  8. linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程
  9. vue mock模拟后台接口数据
  10. web 后台返回json格式数据的方式(status 406)