本帖最后由 w726123808 于 2013-05-14 09:37:14 编辑

解决方案 »

  1.   

    我看晕了,DateTime内部用long保存的是Tick数,没有带不带星期一说。
    格式化成字符串用.ToString("yyyy-MM-dd HH:mm:ss");好了。还有DateTime.Now就是DateTime类型,不需要再Convert.ToDateTime了。
      

  2.   

    DateTime型显示的时候就是和本机日期设置相关的,想要显示成2013-05-14 9:20样式,最后做显示的时候用.ToString("yyyy-MM-dd HH:mm:ss")转字符串就行了
      

  3.   

    DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
      

  4.   

    因为要到access数据库查询数据,所以要求必须是时间类型,因为本机设置成了显示带星期的,所以datetime.now获取时,星期也带着了
      

  5.   

    我在重新说一下思路,我要做的是根据时间段查询,用access数据库,数据库为时间类型,
    后台获取到日期后,首先要拼串 例如得到的是2013-5-14  需要加上开始时间,变成2013-5-14 00:00:00
    然后需要把字符串类型转换成时间类型,用了Convent.toDatetime,转换后的格式带有星期,
    带有日期的原因是因为本机时间设置的问题,本机设置时间的格式带有了星期,所以一经转换成时间类型,就会带有星期,我问的是,在不改变本机时间设置的情况下,有什么解决办法来满足我的需求
      

  6.   


    但是我最后要的是时间类型的数据,用到时间类型的时候在用Convert.DateTime转换下 
      

  7.   


    但是我最后要的是时间类型的数据,用到时间类型的时候在用Convert.DateTime转换下 嗯,转换了,但是因为本机设置的是带星期的格式,只要我用Convert.DateTime转换就带日期
      

  8.   


    因为本机设置的日期带星期,所以DateTime.Now的时候带有日期,就算我先转换成string格式一下,当转会DateTime类型时,还是带有日期
      

  9.   

    lz还是没懂。
    The DateTime value type represents dates and times with values ranging from 00:00:00 (midnight), January 1, 0001 Anno Domini (Common Era) through 11:59:59 P.M., December 31, 9999 A.D. (C.E.) in the Gregorian calendar.
    Time values are measured in 100-nanosecond units called ticks, and a particular date is the number of ticks since 12:00 midnight, January 1, 0001 A.D. (C.E.) in the GregorianCalendar calendar (excluding ticks that would be added by leap seconds). For example, a ticks value of 31241376000000000L represents the date, Friday, January 01, 0100 12:00:00 midnight. A DateTime value is always expressed in the context of an explicit or default calendar.以上来自msdn.DateTime内部使用一个Long类型的Tick保存自12:00 midnight, January 1, 0001 A.D. (C.E.)的秒数。因此和你说的带日期不带日期,带星期不带星期没有任何关系。
    日期和星期是ToString转换成字符串才有的。你在VS 调试时看到的也是ToString的结果。
    DateTime.Now就是DateTime类型,因此不需要转换。需要显示给用户是需要转换成字符串,使用ToString().如果格式不满足要求,使用自定义格式ToString("yyyy-MM-dd HH:mm:ss")。
    这样明白了吗?
      

  10.   

    string[] _week={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
    string _date=DateTime.Now.ToString("yyyy年MM月dd日 ")+  _week[(int)DateTime.Now.DayOfWeek] +DateTime.Now.ToString(" HH:mm");
      

  11.   

    我懂你的意思,是你没懂我的,纠结的不是一个问题,最简单来说,需要把string转换成datetime,要求结果格式是yyyy-MM-dd HH:mm:ss 
      

  12.   

    string str = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");;
    DateTime dt = DateTime.ParseExact(str, "yyyy-MM-dd HH:mm:ss",null );
      

  13.   

    你还是没有懂我的意思"日期和星期是ToString转换成字符串才有的。你在VS 调试时看到的也是ToString的结果。"
    这是我12楼的回答。DateTime你可以把它看做是一个Long类型,ToString()的时候计算什么年啊,月啊,日期啊什么的。
      

  14.   

    咱能把Datetime.now忘掉吗,就说把string转换成时间类型,看一下19楼处的截图
      

  15.   

                string _data=DateTime.Now.ToString("yyyy-MM-dd dddd HH:mm:sss");
                Response.Write( _data +"<br/>");
                Response.Write(DateTime.ParseExact(_data, "yyyy-MM-dd dddd HH:mm:ss", null).ToString("yyyy-MM-dd HH:mm:ss"));
                Response.End();
      

  16.   


    这样得到的是string类型吧,
      

  17.   

    DateTime本身没有格式,只是我们人为的去改变他的显示格式而已,不用太过纠结这个,字符型的日期也能保存到数据库中(只是格式是日期的)
      

  18.   

    把string转换成时间类型没有问题,转换完之后就是个Long,没有星期啊,年啊什么的了。
    你在VS debug是看到的是ToString()的结果。
      

  19.   


    嗯,是可以保存的,但是用于查询access查询的时候就报错了
      

  20.   

    大哥啊,你为什么非要纠结“个Long,没有星期啊,年啊什么的了。
    你在VS debug是看到的是ToString()的结果”的问题啊,看清楚我问的是什么问题好不好...
      

  21.   

    下载http://download.csdn.net/detail/joyhen/5041462,看看源码,有你要的东西
      

  22.   


    嗯,是可以保存的,但是用于查询access查询的时候就报错了看你是怎么用了
    在Access
    #
      

  23.   

    在Access里
    #2013-5-14# 可以明确的表示这是一个时间字符
    http://wenku.baidu.com/view/6c5800a1284ac850ad02429a.htmlDateDiff("d",#2004-01-06#,#2004-01-07#) 
    http://zhidao.baidu.com/question/110143024.html
      

  24.   

    这个没关系的  ToString("yyyy-MM-dd HH:mm:ss")就行了  不要再转换成日期类型了嘛  这样转来转去的头都晕了  你转换成字符串格式 又转换层datetime类型 这不是画蛇添足嘛
      

  25.   

    我彻底晕了,lz的问题不是DateTime带有星期,但是不想有星期吗?
      

  26.   

    是小妹?
    首先说用字符串转成时间:
    string aaa="2013-5-15 00:00:00";
    DateTime bbb = DateTime.Parse(aaa);
    你调试截图来看看。
      

  27.   

    说来说去根本就不是日期格式的事,是你sql语句的事,跟星期不星期跟们没关系。
      

  28.   

    http://www.cnblogs.com/hantianwei/archive/2010/09/23/1833228.html
      

  29.   

    这个没关系的  ToString("yyyy-MM-dd HH:mm:ss")就行了  不要再转换成日期类型了嘛  这样转来转去的头都晕了  你转换成字符串格式 又转换层datetime类型 这不是画蛇添足嘛
    我也不想在转换啊,但是在access数据库里,因为那个字段是datetime类型的,所以,最终的结果要求是datetime类型啊
      

  30.   



    OK 想问下你的VS什么版?WIN系统是什么?办法肯定有,或许笨办法能解决。
      

  31.   


    对啊那我的回答也没错啊,DateTime类型没有星期,只有ToString()后才有星期。你在Debugger中看到的是ToString()后的结果。没错啊???
      

  32.   


    对啊那我的回答也没错啊,DateTime类型没有星期,只有ToString()后才有星期。你在Debugger中看到的是ToString()后的结果。没错啊???
    我没说你错啊,我是说你说的是理论,不是我要的结果啊
      

  33.   



    OK 想问下你的VS什么版?WIN系统是什么?办法肯定有,或许笨办法能解决。vs2012 win7啊,我已经把本机的日期改成不带星期的了,就不报错了
      

  34.   


    我还是晕的,你改了系统时间格式,难道部署的时候还要改服务器系统时间格式?到底是怎么出的错啊?
    需要字符串用
    ToString(“自定义格式”)
    需要解析字符串用
    DateTime.ParseExact(sourceString, "自定义格式", NULL)应该不需要改系统时间的啊。
      

  35.   

    改系统时间格式绝对是the worst solution
      

  36.   

                string dateString = "2013-05-14 星期二 9:20:20";
                string date="";
                foreach (Match m in Regex.Matches(dateString, @"[^(\u4e00-\u9fa5)]+"))
                {
                    date += m.Value;
                }
                Console.WriteLine(DateTime.Parse(date));
     
      

  37.   

    这么说,得到string类型的时间,要转换成时间类型去查询,同样的程序,在同事的机器上ok,到我的就报错,结果我发现是我们本机的时间显示设置的不一样,我的长日期处加了dddd,然后我就想问一下怎么能解决这个问题,
      

  38.   

    改本机可以解决问题我知道,我怀疑你系统有问题,
    1.假设你软件发布给其它机器,再遇到不愿改本机的又固执的那就有麻烦了;
    2.我和你同意VS2012和WIN7改为带星期就没发现你那样带星期的.
    因此,我想再请你借图一次,这次请把日期单独,时间单独,也就是把日期和时间分开.
    string aaa="2013-5-15"; DateTime bbb = DateTime.Parse(aaa);
      

  39.   


    别纠结星期不星期的了,说了你也搞不懂,去看看Datediff函数的说明吧,用Datediff函数去处理。
      

  40.   

    OK,string[] 日期格式组 = DateTime.Now.GetDateTimeFormats();这下看你的了,爱怎么就怎么。
      

  41.   

    点击按钮后一看才发现是字符串数组,嘿嘿,显然不合要求或可以说是不可取万不得已的,其实原因就是日期格式设置造成,那么,找对策就从这里下手了,其一,就是不变数据库日期列数据格式而采用比较曲折查询方法,这显然不妥,其二,修改系统日期格式。其三,把时间列数据格式进行转换成同一格式做个测试
    private bool 带星期日期比较() { return (DateTime .Parse ("2013-5-15")>DateTime .Now) ? true :false ; }
    。这些措施前提就是不改变系统日期所能采取的应对。本想找看有无提供和日期设置格式无关的函数,很显然没这样动力,只能待他人看看了。
    其实,WIN7长时间格式可选有星期的,短时间格式没星期可选,想不到霸王硬上弓给上了,实属添足。
      

  42.   

    DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");  如果这样得不到你本机的日期,那就只能拼接字符串了
    DateTime dt = DateTime.Now;
    string date = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToSting() + ....;//一直加到你想要的字符串
    然后再转换为日期格式就OK了