linq中日期格式

时间:2022-11-22 14:01:20
            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"),//结账时间  

#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"),//结账时间