为什么JSP取得的系统时间不对?日期对,时间不对。
下面是我在网上找的四种不同的方式,全部结果都一样,tomcat就在我本机,本机时间是:19:27,
而它们出来的是:11:25
请问是怎么回事?
================================================
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
userLastTime=sdf.format(new java.util.Date());
================================================
java.util.Date ymd=new java.util.Date();   
userLastTime=ymd.toLocaleString();
================================================
//用这个方法,要import java.text.SimpleDateFormat
java.util.Date d=new java.util.Date();   
java.util.GregorianCalendar calendar=new java.util.GregorianCalendar();   
calendar.setTime(d);   
int iYear=calendar.get(calendar.YEAR);   
int iMonth=calendar.get(calendar.MONTH)+1;   
int iDay=calendar.get(calendar.DAY_OF_MONTH);
int iHour=calendar.get(calendar.HOUR);
int iMinute=calendar.get(calendar.MINUTE);
int iSecond=calendar.get(calendar.SECOND);
userLastTime=iYear +"-"+ iMonth +"-"+ iDay +" "+ iHour +":"+ iMinute +":"+ iSecond;
================================================
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
java.util.Date currentTime = new java.util.Date();//得到当前系统时间 
userLastTime=formatter.format(currentTime); //将日期时间格式化
================================================

解决方案 »

  1.   

    我的时区是北京、重订......啊。
    他这个时间,好象是格林威治时间。在JSP中,怎么进行时间加减?
      

  2.   

    没办法,暂时用最笨的办法了:谁帮帮我,简化一下啊。java.util.Date d=new java.util.Date();   
    java.util.GregorianCalendar calendar=new java.util.GregorianCalendar();   
    calendar.setTime(d);   
    int iYear =calendar.get(calendar.YEAR);   
    int iMonth =calendar.get(calendar.MONTH)+1;
    int iDay =calendar.get(calendar.DAY_OF_MONTH);
    int iHour =calendar.get(calendar.HOUR)+20;
    int iMinute =calendar.get(calendar.MINUTE);
    int iSecond =calendar.get(calendar.SECOND);
    if (iHour>24)
    {
    iHour=iHour-24;
    iDay=iDay+1;
    }
    if (iDay>30 && (iMonth==4 || iMonth==6 || iMonth==9 || iMonth==11))
    {
    iDay=iDay-30;
    iMonth=iMonth+1;
    }
    if (iDay>31 && (iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12))
    {
    iDay=iDay-31;
    iMonth=iMonth+1;
    }
    if (iDay>29 && iMonth==2 && iYear%4==0)
    {
    iDay=iDay-29;
    iMonth=iMonth+1;
    }
    if (iDay>28 && iMonth==2 && iYear%4>0)
    {
    iDay=iDay-28;
    iMonth=iMonth+1;
    }
    if (iMonth>12)
    {
    iMonth=iMonth-12;
    iYear=iYear+1;
    }userLastTime=iYear +"-"+ (iMonth>9?iMonth:"0"+ iMonth) +"-"+ (iDay>9?iDay:"0"+ iDay) +" "+ (iHour>9?iHour:"0"+ iHour) +":"+ (iMinute>9?iMinute:"0"+ iMinute) +":"+ (iSecond>9?iSecond:"0"+ iSecond) +".0";
      

  3.   

    我的机器也是这样,很无奈,你的机器现在好了吗,用C#编写的程序取时间没有错,但是用JAVA编写的程序就比实际时间慢8小时,太晕了 .
      

  4.   

    我的电脑也是这样 还是不知道怎么解决 现在有解决办法吗?
    在tomcat里不能设置吗?
    我注意到 启动tomcat的时候的显示时间就比本机时间小8个小时 应该是能设置的
      

  5.   

    找到原因了,正解如下:
        public String getCurrentDateTime()
        {
       TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8"); 
    TimeZone.setDefault(tz); 

            SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String s = simpledateformat.format(new Date());
            return s;
        }
    加上红色的这部分 以后就不会再出现这样的问题了 呵呵  我也是刚搞定的  楼主不够意思  解决了问题 也不说说解决办法 嘿嘿