五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 使用JavaScriptSerializer進(jìn)行序列化日期類型應(yīng)該注意的問題

使用JavaScriptSerializer進(jìn)行序列化日期類型應(yīng)該注意的問題

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):471    更新時(shí)間:2011-03-31 18:26   參與評(píng)論
JavaScriptSerializer在序列化DateTime時(shí),是用刻度來(lái)表示的,具體在Json體現(xiàn)為:\/Date(315547200000)\/  用V進(jìn)行一個(gè)閉包, 括號(hào)內(nèi)為Date的刻度,刻度就是時(shí)間滴答滴答經(jīng)過的毫秒數(shù),刻度計(jì)算的趕止時(shí)間為:UTC 1970年1月1日午夜開始的,
注意該起止時(shí)間是UTC時(shí)間,看看以下程序:
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)入論壇

發(fā)表評(píng)論 (471人查看0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)