目前我获取数据库中的字段 joinTime    时间格式为  yyyy-mm-dd   现在在页面要转换为  文字形式的时间
  比如:将2011-01-18 转换为 二零一一年 一月十八日

解决方案 »

  1.   

    public static String trans(final String s) throws Exception {
    final StringBuffer result = new StringBuffer();
    final HashMap<String ,String > m = new HashMap<String,String>();
    m.put("0", "零");
    m.put("1", "一");
    m.put("2", "二");
    m.put("3", "三");
    m.put("4", "四");
    m.put("5", "五");
    m.put("6", "六");
    m.put("7", "七");
    m.put("8", "八");
    m.put("9", "九");
    for(int i=0;i<4;i++) {
    result.append( m.get(String.valueOf(s.charAt(i))));
    }
    result.append("年");
    if(s.charAt(4) == '1') {
    result.append("十");
    }
    if(s.charAt(5) != '0') {
    result.append( m.get(String.valueOf(s.charAt(5))));
    }
    result.append("月");
    char c = s.charAt(6);
    if(c == '0') {

    }else if(c == '1') {
    result.append("十");
    }else {
    result.append( m.get(String.valueOf(s.charAt(6))));
    result.append("十");
    }
    if(s.charAt(7) != '0') {
    result.append( m.get(String.valueOf(s.charAt(7))));
    }
    result.append("日");
    return result.toString();
    }
    注意参数为
    20110101这样的格式
      

  2.   


    public class T {
    static char[] ch = {'零','一','二','三','四','五','六','七','八','九'};
    public static void main(String[] args) {
    String str = "2011-01-18";
    System.out.println(convert(str));
    } private static String convert(String str) {
    StringBuffer sb = new StringBuffer();
    StringBuffer s = new StringBuffer();
    String[] temp = str.split("-");
    //处理年
    for(int i = 0; i < temp[0].length(); i++) {
    sb.append(ch[temp[0].charAt(i) - '0']);
    }
    sb.append("年");
    //处理月
    sb.append(format(temp[1]) + "月");
    //处理日
    sb.append(format(temp[2]) + "日");
    return sb.toString();
    }

    private static String format(String str) {
    StringBuffer sb = new StringBuffer();
    if(str.startsWith("0"))
    str = str.substring(1);
    for(int i = str.length() - 1; i >= 0; i--) {
    sb.append(ch[str.charAt(i) - '0']);
    if(i > 0) 
    sb.append("十");
    }
    sb = sb.reverse();
    if(sb.toString().startsWith("一") && sb.length() > 1)
    sb.delete(0, 1);
    return sb.toString().replaceAll("零", "");
    }
    }
      

  3.   

    用DateFormat这个转换类就可以实现,人是逼出来的所以自己想出来的会好很多。