时间格式转换 目前我获取数据库中的字段 joinTime 时间格式为 yyyy-mm-dd 现在在页面要转换为 文字形式的时间 比如:将2011-01-18 转换为 二零一一年 一月十八日 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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这样的格式 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("零", ""); }} 用DateFormat这个转换类就可以实现,人是逼出来的所以自己想出来的会好很多。 有点乱了:JAVA Swing的基础问题 实现图片的传输问题。为什么代码运行到一半就停止了?请高手看看 单引号的问题 数据迁移的问题方案 怎么在vc和c#中运行java程序? 关于C/S结构中使用sping+hibernate 程序无法执行出现异常,请高手指点 该怎样解决 关于反射的问题! 请求高手帮忙 non-static variable this cannot be referenced from a static context错误?? struts1 与struts2 有什么区别 菜鸟提问 JAVA 字符串和比特转换问题
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这样的格式
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("零", "");
}
}