请尝试以下操作:
var data = "20160101000000000";
var dateTime = new DateTime(JsonConvert.DeserializeObject<Int64>(data));
var utc = dateTime.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
public class CustomDateTimeConverter : DateTimeConverterBase
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{ return; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return new DateTime(Convert.ToInt64(reader.Value));
}
使用方法如下:
}
var data = "20160101000000000";
var dateTime = JsonConvert.DeserializeObject<DateTime>(data, new CustomDateTimeConverter());
data
中得到的实际上不是JSON字符串(它是一个数字)。如果您希望JSON.NET按照您的预期解析它,则需要将其用引号括起来:var data = "\"20160101000000000\"";