String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
stm.setString(5,date);

解决方案 »

  1.   

    你可以把new java.util.Date().getTime()输出看一下,它的格式sql server不接受
    楼上的楼上的方法很巧妙,我也学到了,多谢
    我自己用的是下面的方法,相比就麻烦多了,不过还是贴出来
            GregorianCalendar now=new GregorianCalendar();
            int year=now.get(Calendar.YEAR);
            int month=now.get(Calendar.MONTH)+1;
            int day=now.get(Calendar.DAY_OF_MONTH);
            int hour=now.get(Calendar.HOUR_OF_DAY);
            int minute=now.get(Calendar.MINUTE);
            int second=now.get(Calendar.SECOND);
            updatedon=year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
      

  2.   

    非常感谢TM,日期终于插进去了!
    但是,日期里面有了中文,如下:
    2005-04-01 上午 12:10:49
    那可不可以把这个"上午"换成英文(如AM)或去掉呢?
    谢谢!
      

  3.   

    String date=new SimpleDateFormat("yyyy-MM-dd HH24:mm:ss").format(new Date());
    stm.setString(5,date);
      

  4.   

    String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.ENGLISH).format(new Date());
    stm.setString(5,date);
      

  5.   

    To:shan1119(大天使) 
    使用你的方法系统报错,说转化成 datetime 的时候类型不对To:TM
    怎么用了这个转成english以后数据库里面还是中文的值啊?
    而且还是
    2005-04-01 上午 13:53:30
    这明明是已经到下午了嘛!
      

  6.   

    直接用now()不就可以了吗???
      

  7.   

    楼上的,请问是在哪里写 now()???
      

  8.   

    你是用的什么数据库啊,,,我用的mysql这样写的
    String sql = "UPDATE admin SET lastlogintime=now() where adname='"+adname+"'";
      

  9.   

    String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.ENGLISH).format(new Date());
    stm.setString(5,date);
    这个根本就不会有am或者上午的字样出现的啊用now()也是可以的
      

  10.   

    To:TM
    用你说的方法还是一样的有"上午"的字样啊,我试过的!!!
    你有联系方法么?我用的sql server数据库
    是不是引类的时候是import java.util.Date就还是有中文呢?
    一定要引 sql.date么?
      

  11.   

    public class DateManage {
      public DateManage() {
      }
      //根据指定的格式,对日期字符串格式化
      public static String formatDate(String strDate,String format)
      {
        if(strDate == null || strDate.equals(""))
          return "";
        SimpleDateFormat baseFormat =new SimpleDateFormat(format);
        SimpleDateFormat bartDateFormat=null;
        java.util.Date date=null;
        Vector vectFormat=new Vector();
        vectFormat.addElement("yyyy年mm月dd日");
        vectFormat.addElement("yyyy/mm/dd");
        vectFormat.addElement("yyyy-mm-dd");
        vectFormat.addElement("yyyy mm dd");
        vectFormat.addElement("M/dd/yyyy");
        vectFormat.addElement("yyyymmdd");
        for(int i=0;i<vectFormat.size();i++)
        {
            bartDateFormat =new SimpleDateFormat(String.valueOf(vectFormat.elementAt(i)));
            try{
              bartDateFormat.setLenient(false);
              date=bartDateFormat.parse(strDate);
              break;
            }
            catch(Exception ex)
            {
              continue;
            }
        }
        try{
          return baseFormat.format(date);
        }
        catch(Exception ex)
        {
          return null;
        }
      }
      

  12.   

    TM:
    程序中format(new Date())重的new Date()报错,说Date()参数里面要加什么0之类的,加了3个0就插入了1899-12-31
    加1个0就插入了1970-01-01 上午 08:00:00
    这到底又是为什么啊,而且“上午”问题没有解决!!!
      

  13.   

    关于“上午”问题,请在SQL SERVER中修改该列的字段定义属性。
      

  14.   

    怎么没有人看到这个:
    JAVA中的日期时间操作 
    作者:leshui    来自:CSDN
    经常看见jsp版里有人问时间操作的问题,这些问题一般包括:取当前时间,把一个指定的字符串时间转化成时间类型,求两个时间之间的天数,求一段时间以前的时间,求一段时间以后的时间,在这里就把这些问题汇总一下。<%@  page  contentType="text/html;charset=gb2312"%>
    <%@ page import="java.text.*,java.util.*"%><%
    // 字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);
    java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");  
    out.println(d);
    out.println("<br>");
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String mDateTime1=formatter.format(d);
    out.println(mDateTime1);
    out.println("<br>");
    out.println(d.getTime());
    out.println("<br>");
    //当前时间
       Calendar cal  = Calendar.getInstance();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String mDateTime=formatter.format(cal.getTime());
       out.println(mDateTime);
       out.println("<br>");//1年前日期
       java.util.Date myDate=new java.util.Date();  
       long myTime=(myDate.getTime()/1000)-60*60*24*365;
       myDate.setTime(myTime*1000);
       String mDate=formatter.format(myDate);
       out.println(mDate);
       out.println("<br>");//明天日期
       myDate=new java.util.Date(); 
       myTime=(myDate.getTime()/1000)+60*60*24;
       myDate.setTime(myTime*1000);
       mDate=formatter.format(myDate);
       out.println(mDate);
       out.println("<br>");//两个时间之间的天数
       SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
       java.util.Date date= myFormatter.parse("2003-05-1"); 
       java.util.Date mydate= myFormatter.parse("1899-12-30");
       long  day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
       out.println(day);
       out.println("<br>");//加半小时
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
       java.util.Date date1 = format.parse("2002-02-28 23:16:00");
       long Time=(date1.getTime()/1000)+60*30;
       date1.setTime(Time*1000);
       String mydate1=formatter.format(date1);
       out.println(mydate1);
       out.println("<br>");//年月周求日期
       SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
       java.util.Date date2= formatter2.parse("2003-05 5 星期五"); 
       SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
       String mydate2=formatter3.format(date2);
       out.println(mydate2);
       out.println("<br>");//求是星期几
       mydate= myFormatter.parse("2001-1-1");
       SimpleDateFormat formatter4 = new SimpleDateFormat("E");
       String mydate3=formatter4.format(mydate);
       out.println(mydate3);
       out.println("<br>");
    %>
     
      

  15.   

    stm.setString(5,GETDATE());可以不, 用GETDATE ()直接从数据库中取得当前时间。