在windows下使用DateFormat的parse方法,将字符中转化为Date类型时,一切正常。可安装到Linux下,就出现了ParseException异常。代码如下:         public Date toDateTime(String str){ 
                Date dt = new Date();                 try{ 
                        DateFormat df;
                        df = DateFormat.getDateTimeInstance();  
                        dt = df.parse(str); 
                } 
                catch(ParseException e){ 
                        System.err.println(e); 
                } 
                return dt; 
        }

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【aouzo】截止到2008-07-28 18:25:28的历史汇总数据(不包括此帖):
    发帖的总数量:13                       发帖的总分数:290                      每贴平均分数:22                       
    回帖的总数量:9                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:5                        结贴的总分数:130                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:8                        未结的总分数:160                      
    结贴的百分比:38.46 %               结分的百分比:44.83 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   

    估计是locale的设置在 linux和windows下不同
     
    所以日期的默认的解析格式就不同你打印出 System.out.println(Locale.getDefault()); 看在两个os下是不是不同
      

  3.   

     Locale locale = Locale.US;
    SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy",locale);
    Date date = formater.parse(value.toString().trim());
    formater.applyPattern("yyyy-MM-dd");
    value = formater.format(date);
    我已经设置了显示格式。
    还是不行
      

  4.   

    java.text.ParseException: Unparseable date
      

  5.   

    可以把 value 打印出来看看 
      

  6.   

    是这样的。日期是从ECXCEl 里读入的,因为上述的方法不行,为解决写了
    public String getStr(String str){String value = cell_tidy[s].getContents();
    System.out.println("________________________");
    System.out.println(value); Locale locale = Locale.US;
    if(CellType.DATE.equals(cell_tidy[s].getType())){

    value=toDate(getStr(value));

    svo.setAttributeValue(encolumns[s], value);
    svo.setRowNo(String.valueOf(j));
    System.out.println(encolumns[s]+","+value);
    -----------------------------------------------------
    public String getStr(String str){
        String[] parts = str.split("/"); 
        StringBuffer str1=new StringBuffer() ;
        for(int i=0;i<parts.length;i++){
         str1.append(parts[i]);
         if(i<parts.length-1)
         str1.append("-");
        }
        return str1.toString();
    }
    public String toDate(String str){ 
            //Date dt = new Date(); 
            String[] parts = str.split("-"); 
            StringBuffer str1=new StringBuffer() ;
            if(parts.length >= 3){ 
                    int months = Integer.parseInt(parts[0]); 
                    int days = Integer.parseInt(parts[1]); 
                    int years = Integer.parseInt(parts[2]); 
                   // int hours = 0; 
                   // int minutes = 0; 
                  //  int seconds = 0; 
               
                   
                for(int i=0;i<parts.length;i++){
                 str1.append(parts[parts.length-1-i]);
                 if(i<parts.length-1)
                 str1.append("-");
                }
              
           
            }
            return str1.toString(); 

    发现在widows 存入的格式2007-08-09
    linux存入的格式9-8-07
    我认为都入的格式有问题。但不知什么原因???
      

  7.   

    linux中能否设置系统日期的显示格式呢?
    如果可以的话,统一一下标准
    这样转换就没有问题
      

  8.   

    还有,日期能否存放到数据库中
    从数据库取出来,java后台处理格式
    我觉得没有问题
      

  9.   

    但是存入的 格式不一致,我开始读入的是String  类型后来我改为读入日期类型,就ok 了.也就是说2个系统读入的字符串的格式不一致,使否和系统的设置有关?如果有关怎么设置?为什么?谢谢··!·