prosty sposób obsługiwać tej sytuacji jest podklasy IsoDateTimeConverter
do utwórz niestandardowy konwerter dat dla każdego wymaganego formatu daty. Na przykład:
class MonthDayYearDateConverter : IsoDateTimeConverter
{
public MonthDayYearDateConverter()
{
DateTimeFormat = "MM.dd.yyyy";
}
}
class LongDateConverter : IsoDateTimeConverter
{
public LongDateConverter()
{
DateTimeFormat = "MMMM dd, yyyy";
}
}
Następnie można użyć atrybutu [JsonConverter]
ozdobić poszczególne DateTime
właściwości w każdych zajęć, które wymagają niestandardowego formatowania:
class Foo
{
[JsonConverter(typeof(MonthDayYearDateConverter))]
public DateTime Date1 { get; set; }
[JsonConverter(typeof(LongDateConverter))]
public DateTime Date2 { get; set; }
// Use default formatting
public DateTime Date3 { get; set; }
}
Demo:
Foo foo = new Foo
{
Date1 = DateTime.Now,
Date2 = DateTime.Now,
Date3 = DateTime.Now
};
string json = JsonConvert.SerializeObject(foo, Formatting.Indented);
Console.WriteLine(json);
wyjściowy:
{
"Date1": "03.03.2014",
"Date2": "March 03, 2014",
"Date3": "2014-03-03T10:25:49.8885852-06:00"
}
Dzięki. Jest to pomocne – Andrei