由于现在有生成证书的需求 需要将日期转成纯中文. 例:2016-03-12 转 二零一六年三月十二日 我在网上搜到两篇代码 都不行... 所以我希望有亲测可用的代码在此拜托各位大神了.
刚刚写的,希望采纳
package test;
public class ChangeDate {
static char[] chinese = "零一二三四五六七八九十".toCharArray();
public static String getChineseDate(String date) {
//支持yyyy-MM-dd和yyyyMMdd格式
if(date == null) return null;
date = date.replace("-", "");
if(date.length() != 8) return null;
//这里数字就不检查了,可以自己写个格式检查
StringBuilder sb = new StringBuilder();
for (int i=0;i<4;i++) {//年
sb.append(chinese[Integer.parseInt(date.substring(i, i+1))]);
}
sb.append("年");
int month = Integer.parseInt(date.substring(4, 6));
if(month <= 10) {
sb.append(chinese[month]).append("月");
} else {
sb.append("十").append(chinese[month%10]).append("月");
}
int day = Integer.parseInt(date.substring(6));
if (day <= 10) {
sb.append(chinese[day]).append("日");
} else if(day < 20) {
sb.append("十").append(chinese[day % 10]).append("日");
} else {
sb.append(chinese[day / 10]).append("十");
int tmp = day % 10;
if (tmp != 0) sb.append(chinese[tmp]);
sb.append("日");
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(getChineseDate("2016-11-09"));
}
}