C# 对接微信支付时生成符合 RFC3339 标准的日期时间字符串
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 标准的日期时间字符串相关推荐
- java对接微信支付收不到支付通知问题(亲身实践)
问题描述: 用java对接微信支付时,统一下单接口正常.但是用户扫码付款成功后,设置用于回调的notify_url对应的接口并没有收到请求(这个url测试过,是正常的且外网能访问的). 由于官方文档没 ...
- java 微信转账 ca_error_对接微信红包时:CA证书出错,请登录微信支付商户平台下载证书...
今天在对接微信支付的微信红包发放时,出现""CA证书出错,请登录微信支付商户平台下载证书"的错误,特此记录一下: 如果你也在对接微信红包,并且你也在这个页面上下载了dem ...
- 对接微信支付之网页支付详解
对接微信支付之网页支付详解 声明:转载请注明出处 阅读对象:本文针对的是网页中的扫码支付 温馨提示:微信支付坑比较多,阅读时请仔细一些,不要放过所有需要注意的内容 , 本人一路踩坑过来,希望大家引以为 ...
- node 对接微信支付的踩坑记录(服务端)
因项目需要,对接了微信支付,微信支付对于网页来说没有什么工作量,申请了商户号后,直接将收款码放到网页上就可以,但是小程序需要调起微信支付直接付款,于是认真翻阅了官网要针对小程序做微信支付的对接. 准备 ...
- springboot 微信小程序 对接微信支付功能(完整版)
微信小程序对接微信支付功能 业务流程时序图 JAVA版 1. 项目架构 2. pom.xml配置文件 3. 小程序账号参数配置类 4.JAVA 通用代码 4.1 工具类 4.1.1 IdGen (id ...
- android pos机对接微信刷脸支付时如何做到双屏异显-2020年10月9日
--------------------越让你感到困难的东西其实内在越简单. 对接微信支付刷脸支付时出现的问题,因为我这边使用的是大屏的双屏异显的pos机,在做第二个屏幕显示的时候我使用的是prese ...
- beecloud对接——微信支付
微信支付方式(https://pay.weixin.qq.com/sta...): 1.付款码支付--------适用于线下场所 2.JSAPI支付--------JSAPI支付是指商户通过调用微信支 ...
- 简易支付平台(已对接微信支付)
序 最近H5开发的app需要对接微信支付,我想的是公司貌似开没有支付平台,听说了另一个项目也要对接支付.为了宇宙的和平,我想就提出来单做,所以说干就干,不考虑那么多,只要自己认可自己就行. 一.支付平 ...
- Java对接微信支付(完整全流程)
Java对接微信支付及支付回调通知的全流程 一.所用框架.对接微信支付我们技术组用的是payment框架,因为该框架已整合springboot因此很方便快捷 <dependency>< ...
最新文章
- POJ 3414 Pots(罐子)
- DataTable / DataSet 与 xml 的相互转换
- 机房为什么要设计冷热通道,设计原则及如何施工?
- 华东交通大学2017年ACM双基程序设计大赛题解
- js部分---表单验证;(含正则表达式)
- 《Spring5官方文档》新功能(4,3)
- 这项技术曾应用于无人驾驶,荣耀10将其移植到手机上这样操作!
- 新浪igame连连看游戏截图
- 公众号写作排版指南教程v1.0
- C# 使用FastReport.NET打印报表
- sap的pod确认_PO确认控制
- 一个由2020年1月7日 京东出现的重大 Bug 漏洞引起的思考...
- 脑与认知科学基础(期末复习)
- Windows防火墙使用
- 哪家宽带网速是最好最快的?
- AGM FPGA之AG10K 系列的开发建议(连载二)
- 以复旦大学为例。我对复旦比较熟悉。
- mt7 android6.0 回退,Mate7 M版本(Android 6.0)B553发布说明及问题反馈
- 电子商务网站建设策划书范例
- 佛说爱情一:佛前的三支蜡烛