如2012-10-10轉換為二〇一二年十月十日
寫的比較繁瑣,有沒有高手幫忙改進下
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class TimeUtil{ public String chtime(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String sdate = sdf.format(date); String newsdate[] = new String[8]; //全部轉化為漢字 for(int i=0;i<sdate.length();i++) { int k = Integer.parseInt(Character.toString(sdate.charAt(i))); switch (k) { case 0: newsdate[i]="〇"; break; case 1: newsdate[i]="一"; break; case 2: newsdate[i]="二"; break; case 3: newsdate[i]="三"; break; case 4: newsdate[i]="四"; break; case 5: newsdate[i]="五"; break; case 6: newsdate[i]="六"; break; case 7: newsdate[i]="七"; break; case 8: newsdate[i]="八"; break; case 9: newsdate[i]="九"; break; } } //加入年月日 List<String> s1 = new ArrayList<String>(); for(int i=0;i<8;i++) { if(i<4) { s1.add(newsdate[i]); } else if(i==4) { s1.add("年"); s1.add(newsdate[i]); } else if(i==5) { s1.add(newsdate[i]); } else if(i==6) { s1.add("月"); s1.add(newsdate[i]); } else if(i==7) { s1.add(newsdate[i]); s1.add("日"); } } String newstr=""; for(String s:s1) { newstr+=s; } /* * 截取月份、日期 */ int i = newstr.indexOf("年"); int j = newstr.indexOf("月"); String month = newstr.substring(i+1, j); String day = newstr.substring(j+1, newstr.length()-1); /* * 處理月份 */ String str1 = month.substring(0,1); String str2 = month.substring(1); String newmonth=""; if("〇".equals(str1)) { newmonth = str2; } else if("一".equals(str1)&&"〇".equals(str2)) { newmonth = "十"; } else if("一".equals(str1)&&!"〇".equals(str2)) { newmonth = "十"+str2; } /* * 處理日期 */ String st1 = day.substring(0,1); String st2 = day.substring(1); String newday = ""; if("〇".equals(st1)) { newday = st2; } else if("一".equals(st1)&&"〇".equals(st2)) { newday = "十"; } else if("一".equals(st1)&&!"〇".equals(st2)) { newday = "十"+st2; } else if("二".equals(st1)&&"〇".equals(st2)) { newday = st1+"十"; } else if("二".equals(st1)&&!"〇".equals(st2)) { newday = st1+"十"+st2; } else if("三".equals(st1)&&"〇".equals(st2)) { newday = st1+"十"; } else if("三".equals(st1)&&!"〇".equals(st2)) { newday = st1+"十"+st2; } String newstring = newstr.substring(0, i)+"年"+newmonth+"月"+newday+"日"; return newstring; } public static void main(String[] args) { TimeUtil t = new TimeUtil(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); try { Date d = sdf.parse("20121010"); System.out.println(t.chtime(d)); } catch (ParseException e) { e.printStackTrace(); } }}