我想从JSON流中解析DateTime
。
日期的模式为YYYY/MM/DD
。
如何在序列化程序的设置上或使用DateParseHandling设置此自定义格式?
只需将JsonSerializer
上的DateFormatString
设置为所需的格式。Json.Net使用与.Net框架相同的格式说明符。
这里有一个例子:
class Program
{
static void Main(string[] args)
{
string json = @"{ ""date"" : ""2014/10/07"" }";
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
using (StreamReader sr = new StreamReader(ms))
using (JsonTextReader jtr = new JsonTextReader(sr))
{
JsonSerializer ser = new JsonSerializer();
ser.DateFormatString = "yyyy/MM/dd";
Foo foo = ser.Deserialize<Foo>(jtr);
Console.WriteLine(foo.Date.ToLongDateString());
}
}
}
class Foo
{
public DateTime Date { get; set; }
}
示例输出:
Tuesday, October 07, 2014