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了,但对于初学的朋友,我想还是有必要了解的!!大家以后,多多指点!!
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了,但对于初学的朋友,我想还是有必要了解的!!大家以后,多多指点!!
//如果我需要其他的格式,你再修改你的方法?
//不如提供一个方法
public String getFormatedTime(String format) {
SimpleDateFormat formatter = new SimpleDateFormat(format);
Calendar cal = Calendar.getInstance();
return formatter.format(cal.getTime());
}
//自己写format,只需要简单说明一下format的要求不就行了,干吗要用那么多的case一点建议
public final static int AMERICAN = 101;这一类的变量吧再,干嘛写那么多次的strDate = formatter.format( date )啊,
太.....了吧,
如果太频繁调用的话,
采用FlyWeight模式如何?
然后何不建立一个位置码到一个格式的映射,这么长的case,有点吓人啊,
写一个HashMap查询String比较好
谢谢,你的建议不错哦,自己写FORMATTER,不用那么麻烦!!
我会改进!!
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);
...
以上代码使得你的长度大量减少,清晰!
其实这个函数也不是必须的,因为代码本身就不太多
建立一种key到pattern的映射的关系,
在初始化时读这个配置,
这样子加入新的日期格式比较方便
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;
}
谢谢,但是,我觉得封装起来,还是好用些,只是觉得,至少对初学的朋友,我想还是有点用吧!!!:),大家多批,没事,我虚心听取建议!!