case 102:
                     try
                     {
                        SimpleDateFormat formatter = new SimpleDateFormat( "yyyy.MM.dd" );
                        strDate = formatter.format( date );
                        break;
                     }
                     catch( Exception e )
                     {
                        e.printStackTrace( );
                     }
                      case 133:
                     try
                     {
                        SimpleDateFormat formatter = new SimpleDateFormat( "yyyyMMddHHmmss" );
                        strDate = formatter.format( date );
                        break;
                     }
                     catch( Exception e )
                     {
                        e.printStackTrace( );
                     }
                     case 134:
                     try
                     {
                        SimpleDateFormat formatter = new SimpleDateFormat( "HHmmss" );
                        strDate = formatter.format( date );
                        break;
                     }
                     catch( Exception e )
                     {
                        e.printStackTrace( );
                     }
                     case 135:
                          int iYear = date.getYear( ) + 1900;
                          int iMonth = date.getMonth( ) + 1;
                          int iDay = date.getDate( );
                          strDate = String.valueOf( iYear) + "年";
                          strDate = strDate + String.valueOf( iMonth) + "月"; 
                          strDate =strDate + String.valueOf( iDay ) + "日";
                          break;
                default:
                     strDate = date.toLocaleString( );
           }
           return strDate;    
      }
     public Date getStringToDate( String strDate, int parameter )
      {
           Date myDate;
           switch( parameter )
           {
                case 101:
                     try
                     {
                           SimpleDateFormat formatter = new SimpleDateFormat( "MM/dd/yyyy" );
                           myDate = formatter.parse( strDate );
                           break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 102:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "yyyy.MM.dd" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 103:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "dd/MM/yyyy" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 104:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "dd.MM.yyyy" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 105:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "dd-MM-yyyy" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 110:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "MM-dd-yyyy" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 111:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "yyyy/MM/dd" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }  
                case 112:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "yyyyMMdd" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 120:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 132:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                case 133:
                     try
                     {
                          SimpleDateFormat formatter = new SimpleDateFormat( "yyyyMMddHHmmss" );
                          myDate = formatter.parse( strDate );
                          break;
                     }
                     catch( Exception e )
                     {
                          e.printStackTrace( );
                     }
                default:
                     myDate = new Date( );
           }
           return myDate; 
      }
}写得不是很好,建议大家改成Calendar的类,因为现在一般都不推荐使用Date了,但对于初学的朋友,我想还是有必要了解的!!大家以后,多多指点!!

解决方案 »

  1.   

    //用你的类还的看你的代码说明?
    //如果我需要其他的格式,你再修改你的方法?
    //不如提供一个方法
    public String getFormatedTime(String format) {
    SimpleDateFormat formatter = new SimpleDateFormat(format);
    Calendar cal = Calendar.getInstance();
    return formatter.format(cal.getTime());
    }
    //自己写format,只需要简单说明一下format的要求不就行了,干吗要用那么多的case一点建议
      

  2.   

    呵呵,至少总得提供一个
    public final static int AMERICAN = 101;这一类的变量吧再,干嘛写那么多次的strDate = formatter.format( date )啊,
    太.....了吧,
    如果太频繁调用的话,
    采用FlyWeight模式如何?
    然后何不建立一个位置码到一个格式的映射,这么长的case,有点吓人啊,
    写一个HashMap查询String比较好
      

  3.   

    TO:xch28(①日蚀) 
    谢谢,你的建议不错哦,自己写FORMATTER,不用那么麻烦!!
    我会改进!!
      

  4.   

    你的代码过于复杂了,实际不应该这样写
    public String getDateToString( Date date, int parameter )
    {
      String strDate = null;
      String pattern = "yyyymmdd";//Default
      switch( parameter )
      {
        case USA://一定要定义成final static int,清楚!
               pattern = "mm/dd/yyyy";
             break;
        case FRANCE:
               pattern = "dd/mm/yyyy";
               break;
        ....
      }
      SimpleDateFormat sdf = new SimpleDateFormat(pattern);
      ...
    以上代码使得你的长度大量减少,清晰!
    其实这个函数也不是必须的,因为代码本身就不太多
      

  5.   

    再加一个配置文件吧,
    建立一种key到pattern的映射的关系,
    在初始化时读这个配置,
    这样子加入新的日期格式比较方便
      

  6.   

    大家建议以后,我还是决定放弃DATE,使用CALENDAR,改成如下这样:
     public String getDateToString( Calendar cal, String formatter)
          {
              String strDate = null;
              if( formatter.equals( "ymd" ) )
              {
                   int iYear = cal.get( cal.YEAR );
                   int iMonth = cal.get( cal.MONTH ) + 1;
                   int iDay = cal.get( cal.DAY_OF_MONTH );
                   strDate = String.valueOf( iYear ) + "年" + String.valueOf( iMonth ) + "月"+ String.valueOf( iDay ) + "日";
               }
               else if( formatter.equals( "yMdhms" ) )
               {
                    int iYear = cal.get( cal.YEAR );
                   int iMonth = cal.get( cal.MONTH ) + 1;
                   int iDay = cal.get( cal.DAY_OF_MONTH );
                   int iHour = cal.get( cal.HOUR_OF_DAY );
                    int iMinute = cal.get( cal.MINUTE );
                    int iSecond = cal.get( cal.SECOND );
                    strDate = String.valueOf( iYear ) + "年" + String.valueOf( iMonth ) + "月"+ String.valueOf( iDay ) + "日" + String.valueOf( iHour ) + "点" + String.valueOf( iMinute ) + "分"+ String.valueOf( iSecond ) + "秒";
               }
               else if( formatter.equals( "week" ) )
               {
                     int iWeek = cal.get( cal.DAY_OF_WEEK );
                     switch( iWeek )
                     {
                          case 1:
                          strDate = "星期日";
                          break;
                          case 2:
                          strDate = "星期一";
                          break;
                          case 3:
                          strDate = "星期二";
                          break;
                          case 4:
                          strDate = "星期三";
                          break;
                          case 5:
                          strDate = "星期四";
                          break;
                          case 6:
                          strDate = "星期五";
                          break;
                          case 7:
                          strDate = "星期六";
                          break;
                     }
               }
              {     
                   try
                   {
                        SimpleDateFormat myFormatter = new SimpleDateFormat( formatter );
                        strDate = myFormatter.format( cal.getTime( ) );
                   }
                    catch( Exception e )
                    {
                         e.printStackTrace( );     
                    } 
               }   
               return strDate;    
          }
      

  7.   

    TO:ChDw(米) 
    谢谢,但是,我觉得封装起来,还是好用些,只是觉得,至少对初学的朋友,我想还是有点用吧!!!:),大家多批,没事,我虚心听取建议!!