项目场景:
提示:以下是项目相关背景的简要描述:
将数据分析上传到设备上Json时候、遇到RFC3339 类似于时间格式的数据"dateTime":“2021-08-05T05:13:19Z,需要将时间转换为DateTime 时间格式
问题描述
提示:描述项目中遇到的问题:
问题1:将JObject 当时间对象转换为字符串时,awsdevdata.dateTime = rb[“dateTime”].ToString(), 转换后的格式为"2021-08-05 05:13:19",再格式化是错误的
问题2:
原因分析:
提示:填写问题分析:
查阅了相关资料,
https://qa.1r1g.com/sf/ask/2459684251/
这属于获取原始json 的值问题
转换后的日期字符串被识别并转换为自己DateTime需要将内部结构设置为JsonSerializerSettings.DateParseHandling = DateParseHandling.None:
解决方案:
问题1:
按照数据给出的方式,转换前会jsonSerializerSettings 设置为None
JsonSerializerSettings settings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None };
//JavaScriptSerializer jss = new JavaScriptSerializer();
JObject rb = (JObject)JsonConvert.DeserializeObject(m.Body, settings);
AwsDevDatabody awsdevdata = new AwsDevDatabody();
awsdevdata.TEUnum = rb[“TEUnum”].ToString();
awsdevdata.DeviceId = rb[“DeviceID”].ToString();
awsdevdata.dateTime = rb[“dateTime”].ToString();
问题2:c#解析时间格式 2021-08-05T05:13:19Z
eventdata.EventdateTime = DateTime.ParseExact(awsdata.dateTime, “yyyy-MM-ddTHH:mm:ssZ”, System.Globalization.CultureInfo.InvariantCulture);