数据库里面有一个字段的时间格式为:2008-7-23 0:00:00
我如何将它转换为2008-7-23这种格式???
先谢谢各位了

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jiangchidd】截止到2008-07-28 10:36:30的历史汇总数据(不包括此帖):
    发帖的总数量:8                        发帖的总分数:120                      每贴平均分数:15                       
    回帖的总数量:8                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:8                        结贴的总分数:120                      
    无满意结贴数:1                        无满意结贴分:30                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:12.50 %               无满意结分率:25.00 %                  
    敬礼!
      

  2.   

    DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      

  3.   

    2楼正解,楼主可以多看看DateFormat 类
      

  4.   

    接照楼上所说的,我在javaBean里面是这样定义的private Date receiveTime;// 接受时间DateFormat format = new SimpleDateFormat("yyyy-mm-dd");
    String receivedate = format.format(format); public String getReceivedate() {
    return receivedate;
    } public void setReceivedate(String receivedate) {
    this.receivedate = receivedate;
    }但它报错了:
    28 七月 2008 03:06:00,000 ERROR proxy.BasicLazyInitializer  - CGLIB Enhancement failed: com.adr.report.approvemanage.bean.AdrReport
    net.sf.cglib.core.CodeGenerationException: java.lang.IllegalArgumentException-->Cannot format given Object as a Date这是什么错误?具体应该是怎么写的啊?
      

  5.   

    String receivedate = format.format(format); 括号中应该是一个date(也就是你从数据库中获取的时间,而不是format) 
      

  6.   

    Calendar cal = Calendar.getInstance();
    String mydate =new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
      

  7.   

    String receivedate = format.format(receiveTime); 
      

  8.   

    private Date receiveTime;// 接受时间 DateFormat format = new SimpleDateFormat("yyyy-mm-dd"); 
    String receivedate = format.format(receiveTime); 
      

  9.   

    依然报错!我的java类(javaBean)里面是这样写的:         private Date receiveTime;// 接受时间
    DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
    String receivedate = formatter.format(receiveTime);         public String getReceivedate() {
    return receivedate;
    } public void setReceivedate(String receivedate) {
    this.receivedate = receivedate;
    }
    从页面上获取数据库里面的时间,在jsp里面是这样写的:
    <td align="center">
    <%=adrReport.getReceiveTime() %>
    </td>
      

  10.   


      private Date receiveTime;// 接受时间 public void setReceivedate(String receivedate) { 
    this.receiveTime= receivedate; 

      

  11.   

    我用的是sqlserver2005   数据库中存时间的字段是datetime类型的当起动tomcat运行时就报错了:28 七月 2008 05:02:21,109 ERROR proxy.BasicLazyInitializer  - CGLIB Enhancement failed: com.adr.report.approvemanage.bean.AdrReport
    net.sf.cglib.core.CodeGenerationException: java.lang.NullPointerException-->null
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:235)
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:220)
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:216)
    at net.sf.cglib.proxy.Enhancer.createUsingReflection(Enhancer.java:640)
    at net.sf.cglib.proxy.Enhancer.firstInstance(Enhancer.java:538)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:225)
    at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
    at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
    at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:676)
    at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:94)
    at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:42)
    at org.hibernate.tuple.PojoTuplizer.buildProxyFactory(PojoTuplizer.java:144)
    at org.hibernate.tuple.AbstractTuplizer.<init>(AbstractTuplizer.java:83)
    at org.hibernate.tuple.PojoTuplizer.<init>(PojoTuplizer.java:54)
    at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:47)
    at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:218)
    at org.hibernate.persister.entity.BasicEntityPersister.<init>(BasicEntityPersister.java:400)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:104)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:211)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
    at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4343)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
    at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
    at org.apache.catalina.core.StandardService.start(StandardService.java:480)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
    Caused by: java.lang.NullPointerException
    at java.util.Calendar.setTime(Calendar.java:1032)
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:785)
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:778)
    at java.text.DateFormat.format(DateFormat.java:314)
    at com.adr.report.approvemanage.bean.AdrReport.<init>(AdrReport.java:138)
    at com.adr.report.approvemanage.bean.AdrReport$$EnhancerByCGLIB$$b494cf3a.<init>(<generated>)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:228)
    ... 57 more
      

  12.   

    SimpleDateFormat  simpleDateFormat = new SimpleDateFormat(format);
    Date temp = simpleDateFormat.parse(date);
    如果是字符串这样!
      

  13.   

    Date d  = new Date();
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
    String str = sdf.format(d);
    yyyy-MM-dd与yyyy-mm-dd是不一样的
      

  14.   

    虽然报了NullPointerException,但还是不知道到底哪出了问题?是不是哪里写得有问题?帮我看看,十分感激!
      

  15.   

    谢谢各位了,现在时间格式是转换过来了,但没有取到数据库里面的时间:2008-7-23 0:00:00 ,而是取到的是当日时间: 2008-07-28 最后我这样写:
             private Date receiveTime;// 接受时间
    Date date = new Date();
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    String receivedate = formatter.format(receiveTime);它就报错了,NullPointerException
      

  16.   

    你取的时候直接转换就行
    to_date('2008-07-22 12:20','yyyy-mm-dd')例子 select to_date(字段名,'yyyy-mm-dd') from XXXX
      

  17.   


    是不是没有初始化啊,也就是值为null,那样肯定是NullPointerException错误啦
      

  18.   

    我上面写的也就是最主要的代码
    String receivedate = formatter.format(receiveTime); 数据库里面要取的时间字段就是这个receiveTime ,我要是把这个receiveTime改为date就好了,但取得不是数据库里面已有的时间,而是当日的时间。
    字段名也定义了,set和get方法也都有了,但就是报这个错:28 七月 2008 06:23:39,015 ERROR proxy.BasicLazyInitializer  - CGLIB Enhancement failed: com.adr.report.approvemanage.bean.AdrReport
    net.sf.cglib.core.CodeGenerationException: java.lang.NullPointerException-->null
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:235)
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:220)
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:216)
    at net.sf.cglib.proxy.Enhancer.createUsingReflection(Enhancer.java:640)
    at net.sf.cglib.proxy.Enhancer.firstInstance(Enhancer.java:538)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:225)
    at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
    at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
    at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:676)
    at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:94)
    at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:42)
    at org.hibernate.tuple.PojoTuplizer.buildProxyFactory(PojoTuplizer.java:144)
    at org.hibernate.tuple.AbstractTuplizer.<init>(AbstractTuplizer.java:83)
    at org.hibernate.tuple.PojoTuplizer.<init>(PojoTuplizer.java:54)
    at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:47)
    at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:218)
    at org.hibernate.persister.entity.BasicEntityPersister.<init>(BasicEntityPersister.java:400)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:104)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:211)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
    at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4343)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
    at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
    at org.apache.catalina.core.StandardService.start(StandardService.java:480)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
    Caused by: java.lang.NullPointerException
    at java.util.Calendar.setTime(Calendar.java:1032)
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:785)
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:778)
    at java.text.DateFormat.format(DateFormat.java:314)
    at com.adr.report.approvemanage.bean.AdrReport.<init>(AdrReport.java:137)
    at com.adr.report.approvemanage.bean.AdrReport$$EnhancerByCGLIB$$92243f0a.<init>(<generated>)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:228)
    ... 57 more帮忙看看啊
      

  19.   

    你 datetime 类型的字段值是怎么取的,可以直接取成 java.sql.Timestamp 类型的,然后再格式化输出。
      

  20.   


    我用的sqlserver2005 但向你所说的,我先试着把语句放在里面执行之后,报错了啊
      

  21.   

    private Date receiveTime;
    String receivedate = formatter.format(receiveTime); 
    你只是定义了receiveTime,而没有赋值,所以是NullPointerException错误
    你应该查询数据库取出日期赋值给receiveTime才行。Date date = new Date();获取系统当前日期
    String receivedate = formatter.format(date); 所以是当日了。其实你可以
      

  22.   


    哦,可能有区别吧,我是用的oracle
      

  23.   


    我用的是hibernate,在AdrReport.hbm.xml文件中都已经配置好了,所查询出来的数据是直接返回AdrReport这张表的字段名而直接获取数据的
    我就是不清楚具体该怎么去做?
      

  24.   

    搂住,我给查了一下,sqlserver的日期转换格式好像没有yyyy-mm-dd这种
    但是有一下2中接近2004/09/12 或者09-12-2004
    你要么用mm-dd-yyyy这种select CONVERT(varchar(12) , 字段名, 113 )
    或者你用select CONVERT(varchar(12) ,字段名, 112 )取得yyyy/mm/dd格式,然后用replace(replace(replace(varchar(12),'/','-'),'/','-'),'/','-')
    就变成你想要的了仅供参考,可能有别的更简便的方法 
      

  25.   

    上面有个地方写错了,最里面那个replace应该替换的是CONVERT(varchar(12) ,字段名, 112 )呵呵,不好意思
      

  26.   


    你好!你所说的这两种方法,是在哪个地方去完成它,怎么来实现它,因为用的是hibernate,有hql语句,但貌似没有用到它,那我怎么来对它进行转换啊?
    不好意思,说真的,接触的少了,不知道怎么去转换它,帮帮我,麻烦了!
      

  27.   


    哦,没有直接SQL啊,那你取到日期的字符串,直接进行操作。
    你取到的格式肯定是2008-7-23 0:00:00 吧
    那么把取的值赋给一个字符串,例如String s=“2008-7-23 0:00:00”;
    s=s.subString(0,s.indexOf(" "))
    那么s就是“2008-7-23”这样的格式了,你取得肯定是要在前台页面显示的,就显示字符串就行了
      

  28.   

    建议个。。
      取的时候用getString取。
       让后用subString  呵呵。
      

  29.   

    可以用标签来做,很简单!
        <%
           
           java.util.Date date = new java.util.Date(); 
           
        %>
      先导入<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>标签
      然后<fmt:formatDate value="<%=date%>" pattern="yyyy年MM-dd"/>
      当然String d = format.format(date);
     
     
    还有一种方法:
           <%
             SimpleDateFormat format = new SimpleDateFormat("yyyy年MM-dd HH:mm:ss");
            String d = format.format(date);
            out.print(d);
          %>
      

  30.   

    sql_server
    to_char(字段名,'YYYY-MM-DD')
    这样就可以了
      

  31.   

    private String receiveTime;// 接受时间 
    DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd"); String receivedate = formatter.phase(receiveTime).toString(); public String getReceivedate() { 
    return receivedate; 
    } public void setReceivedate(String receivedate) { 
    this.receivedate = receivedate; 

    楼主这样试试看
      

  32.   

    在数据库里,print convert(varchar(10),getdate(),23) 
      

  33.   

     FormatDemo formatdemo = new FormatDemo();
            String str="2008-06-10 15:56:38.163";//换成数据库中的住居就可以了
            try {
                //把字符串转化为日期类型
                Date date = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").parse(str);
                //对转化后的日期进行格式化
                SimpleDateFormat formate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String strDate=formate.format(date);
                //OK得到你想要得结果
                System.out.println("====="+strDate);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
      

  34.   


    你是不是还没有放cglib的jar
      

  35.   

    最简单的方法 把你取出来的时间2008-7-23 0:00:00  截取 如:time.substring(0,10) 在显示就是2008-7-23
      

  36.   

    最关键的一点LZ是否取到数据库值receiveTime
      

  37.   

    private Date receiveTime; 
    String receivedate = formatter.format(receiveTime); 
    你只是定义了receiveTime,而没有赋值,所以是NullPointerException错误 
    你应该查询数据库取出日期赋值给receiveTime才行。 Date date = new Date();获取系统当前日期 
    String receivedate = formatter.format(date); 所以是当日了。 
      

  38.   

    2楼正解,楼主可以多看看DateFormat 类
      

  39.   

    看了这么多问题和回复 楼主 你的java基础知识,一定要加强阿。