java 如何在unix中转换日期为long值
我写了个但还试报错。。public static long getSqlTime1(String dateStr)
    {
     try {
long result = 0;
     if (!dateStr.equals("")){
     Date  date3 = DateFormat.getDateInstance().parse(dateStr);
       Calendar now1 = Calendar.getInstance();
       now1.setTime(date3);        result = now1.getTimeInMillis() * 1000;
}
return result ;
} catch (ParseException e) {
e.printStackTrace();
return -1 ;
}
    }
error:
 java.text.ParseException: Unparseable date: "2009-12-29 21:21:51"
java.text.DateFormat.parse(DateFormat.java:352)

解决方案 »

  1.   


    public static long getSqlTime1(String dateStr) {
    try {
    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr).getTime();
    } catch (ParseException ex) {
    try {
    return DateFormat.getDateInstance().parse(dateStr).getTime();
    } catch (ParseException ex1) {
    }
    }
    return -1;
    }
      

  2.   


    public static String getFormatDateTime(String dateStr)
        {
         if (dateStr == null || dateStr.equals("")) return "" ;
        
         String pattern = "yyyy-MM-dd HH:mm:ss" ; 
         SimpleDateFormat sf = new SimpleDateFormat(pattern);
         Date d = null ;
         try
         {
         d = DateFormat.getDateTimeInstance().parse(dateStr);
         }
         catch(ParseException e)
         {
         e.printStackTrace() ;
         }
        
         return sf.format(d) ;
        }
    我在window下的这个方法没有问题,到unix下就报错了不清楚怎么回事。。
      

  3.   


    在Linux下测试了一下,没有错误,把你的错误贴上来看看
      

  4.   

    d = DateFormat.getDateTimeInstance().parse(dateStr);
    你上面声明的 sf 这个做什么用? 应该用 sf.parse(dateStr)
      

  5.   


    public static String getFormatDateTime(String dateStr){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:MM:ss");
        return sdf.format(sdf.parse(dateStr));
    }
      

  6.   

    直接从数据库取出来就可以是long值
      

  7.   

    楼主你用这个方法试试:public static Long getFormatDateTime(String dateStr) throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
    return sdf.parse(dateStr).getTime();
    }
    这个是将时间返回自1970-01-01 00:00:00 以来此 Date 对象表示的毫秒数。格林威治时间的Long型