linq中日期格式


            var xfInfo = from xf in db.TXSd
                         where xf.KHDM == mc //&& xf.XFLX==lx
                         select new
                         {
                             xf.KHDM,//會員編號
                             xf.XSDBH,//賬單號
                             xf.JZZT,//結賬狀態
                             xf.XFZE,//消費總額
                             xf.SSJE,//實收金額
                             xf.XFSJ,//消費時間
                             xf.JZSJ,//結賬時間
                             //hy.HYXM//會員名稱
                             xf.DID
                         };
            this.gvXFMC.DataContext = xfInfo.ToList();
消費時間從數據庫讀出來是這樣的:5/21/2008 3:20:50 PM的,我現在想把它轉換成這樣的格式怎么轉啊:200-5-21 15:20:50

18 个解决方案

#1


正在學習中,幫頂吧

#2


數據庫里存的是datetime類型嗎?
如果是,那就是系統區域格式設置問題了,或是數據庫的區域格式問題
如果不是,試試convert.todatetime(xf.XFSJ).tostring()

#3


是啊,是datetime的啊,要怎么設置啊。

#4


你用的是英文操作系統嗎?
控制面版里Regional and Language Options里都設置為中國

#5


我用的是中文的操作系統!

#6


暈,具體我也沒遇見過,反正是系統的日期格式設置問題

#7


select new 
     { 
     xf.KHDM,//會員編號 
      xf.XSDBH,//賬單號 
      xf.JZZT,//結賬狀態 
      xf.XFZE,//消費總額 
      xf.SSJE,//實收金額 
      xf.XFSJ.ToString("yyyy-M-d H:n:s"),//消費時間 
      xf.JZSJ,//結賬時間 
      //hy.HYXM//會員名稱 
      xf.DID 
     }; 

這不是Linq問題,這是DateTime類型轉換(到字符串)問題,其實你應該到處c#論壇或者任何一個.net語言基礎論壇去問。

其實,在Linq查詢中轉換日期時間到字符串是“不太明智”的。你應該保留這個DateTime類型,只有在最終顯示時才轉換為字符串。而不是在這里處理。

#8


7樓說的對...格式時間只是給“人”看的...對計算機來說本質上還是一些數字...所以考慮“格式”這個詞時只應該在UI呈現時才去考慮...

這個道理對其他數據類型如數字也是一樣的道理...不要站在人的立場上去替計算機思考...

#9



這里倒是有必要考慮 區域格式問題, 如果所有時間格式都要轉變,不妨了解一下這個類

System.Threading.Thread.CurrentThread.CurrentCulture

#10



var xfInfo = from xf in db.TXSd 
                        where xf.KHDM == mc //&& xf.XFLX==lx 
                        select new 
                        { 
                            xf.KHDM,//會員編號 
                            xf.XSDBH,//賬單號 
                            xf.JZZT,//結賬狀態 
                            xf.XFZE,//消費總額 
                            xf.SSJE,//實收金額 
                            xfsj=xf.XFSJ.ToString("yyyy-MM-dd h:n:s"),//消費時間 
                            jzsj=xf.JZSJ.ToString("yyyy-MM-dd h:n:s"),//結賬時間 
                            //hy.HYXM//會員名稱 
                            xf.DID 
                        }; 
            this.gvXFMC.DataContext = xfInfo.ToList(); 

#11


樓上的也不行啊,提示不能轉化成SQL語句, Unprepared to map method ToString (xf.XFSJ.ToString("yyyy-MM-dd h:n:s")) to SQL
我用的數據庫是MYSQL的。

#12


xfsj = xfsj=xf.XFSJ.ToString("yyyy-MM-dd h:n:s"),//消費時間 
jzsj = jzsj=xf.JZSJ.ToString("yyyy-MM-dd h:n:s"),//結賬時間 

僅修改自10樓

#13


也不可以啊,算了,不用轉換了,就按它顯示的吧。

#14


D_OpenTime = DateTime.Parse(\"" + P_OpenTime.ToString("yyyy-MM-dd HH:mm:ss") + "\")

#15


           var xfInfo = from xf in db.TXSd 
                        where xf.KHDM == mc //&& xf.XFLX==lx 
                        select new 
                        { 
                            xf.KHDM,//會員編號 
                            xf.XSDBH,//賬單號 
                            xf.JZZT,//結賬狀態 
                            xf.XFZE,//消費總額 
                            xf.SSJE,//實收金額 
                            xf.XFSJ,//消費時間 
                            xf.JZSJ,//結賬時間 
                            //hy.HYXM//會員名稱 
                            xf.DID 
                        }; 
              Convert.ToDateTime("5/21/2008 3:20:50 PM").ToString();

#16


才剛剛的學習這個LINQ

#17


試了一下,你這個不行……

引用 7 樓 sp1234 的回復:
select new 
     { 
     xf.KHDM,//會員編號 
      xf.XSDBH,//賬單號 
      xf.JZZT,//結賬狀態 
      xf.XFZE,//消費總額 
      xf.SSJE,//實收金額 
      xf.XFSJ.ToString("yyyy-M-d H:n:s"),//消費時間 
      xf.JZSJ……

#18


xfsj=xf.XFSJ.Value.ToString("yyyy-MM-dd hh:mm:ss"),//消費時間  
jzsj=xf.JZSJ.Value.ToString("yyyy-MM-dd hh:mm:ss"),//結賬時間  


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com