Customer cs = new Customer();
cs.BirthDay = new DateTime(1980, 1, 1, 12, 0, 0);
cs.Name = "steven";
cs.Sex = true;
JavaScriptSerializer js = new JavaScriptSerializer();
string output = js.Serialize(cs);
Customer cust = js.Deserialize(output, typeof(Customer)) as Customer;
if (cust != null)
{
txtBirthDay.Text = cust.BirthDay.Value.ToString();
}
這樣處理時(shí)會(huì)帶來(lái)一點(diǎn)問題就是,在進(jìn)行序列化之后的日期不會(huì)是原來(lái)的 1980-1-1 12:00:00,而是會(huì)根據(jù)utc時(shí)間得來(lái)的一個(gè)時(shí)間,有可能是1979-12-31 4:00:00,這樣在界面進(jìn)行UI展示的時(shí)候會(huì)帶來(lái)一致的問題!
其它處理很簡(jiǎn)單,序列化之前先把本地時(shí)間轉(zhuǎn)換來(lái)UTC時(shí)間,再在反序列之后,把UTC時(shí)間轉(zhuǎn)換為本地時(shí)間就OK了,看看更改之后代碼:
Customer cs = new Customer();
cs.BirthDay = new DateTime(1980, 1, 1, 12, 0, 0).ToUniversalTime();
cs.Name = "steven";
cs.Sex = true;
JavaScriptSerializer js = new JavaScriptSerializer();
string output = js.Serialize(cs);
Customer cust = js.Deserialize(output, typeof(Customer)) as Customer;
if (cust != null)
{
txtBirthDay.Text = cust.BirthDay.Value.ToLocalTime().ToString();
}
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇