DataContract和自定义set/get从字符串中设置DateTime

本文关键字:字符串 设置 DateTime get 自定义 set DataContract | 更新日期: 2023-09-27 18:26:23

我需要解析来自服务器的JSON数据,并列出对象距离。

我使用DataContract是为了在json字典字段和类属性之间建立关联,但我遇到了一个问题:其中一个字段包含字符串中的日期(类似于"2011-01-01 15:00UTC");我想把它放在DateTime属性中。

如何将此字符串转换为日期时间,并使用DataContract自动将属性传递给它?这可能吗?

DataContract和自定义set/get从字符串中设置DateTime

您可以使用以下属性:

[DataMember(Name="Foo")]
public string FormattedFoo {
    get { return /* apply some custom formatting to 'Foo' */; }
    set { Foo = /* apply some custom parsing to 'value' */; }
}
public DateTime Foo {get;set;}

DataMember属性而不是属性放在字段上,并使用setter/getter进行转换:

const string DATE_TIME_FORMAT = "<your format>";
[DataMember]
string myDate;
public DateTime MyDate {
  get 
  {
    return DateTime.ParseExact(myDate, DATE_TIME_FORMAT, CultureInfo.CurrentCulture);
  }
  set 
  {
    myDate = value.ToString(DATE_TIME_FORMAT);
  }
}