Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert DateTime from JSON to C#? [duplicate]

Possible Duplicate:
How to convert UNIX timestamp to DateTime and vice versa?

I've got the following class:

[DataContractAttribute]
public class TestClass
{
  [DataMemberAttribute]
  public DateTime MyDateTime { get; set; }
}

Here's the JSON:

{ "MyDateTime":"1221818565" }

The JSON is being returned from a PHP webservice.

What I need to do, is convert that epoch string into a valid C# DateTime. What's the best way of doing this?

I can do this:

[IgnoreDataMemberAttribute]
public DateTime MyDateTime { get; set; }

[DataMemberAttribute(Name = "MyDateTime")]
public Int32 MyDateTimeTicks
{
  get { return this.MyDateTime.Convert(...); }
  set { this.Created = new DateTime(...); }
}

But the trouble with this is, the MyDateTimeTicks is public (changing it to private causes an exception in the serialization process)

like image 547
Mark Ingram Avatar asked Oct 30 '08 10:10

Mark Ingram


1 Answers

Finishing what you posted, AND making it private seemed to work fine for me.

[DataContract]
public class TestClass
{

    private static readonly DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

    [IgnoreDataMember]
    public DateTime MyDateTime { get; set; }

    [DataMember(Name = "MyDateTime")]
    private int MyDateTimeTicks
    {
        get { return (int)(this.MyDateTime - unixEpoch).TotalSeconds; }
        set { this.MyDateTime = unixEpoch.AddSeconds(Convert.ToInt32(value)); }
    }

}
like image 138
TheSoftwareJedi Avatar answered Oct 02 '22 21:10

TheSoftwareJedi