将日期yyyy-MM-dd转为数字大写的形式

时间:2021-06-11 23:01:44
/**
* 将日期转大写
* 例如:2013-05-13转为 二0一三年五月十三日
* @param date
* @return
*/
public static String getDxDate(String date){
String dateArr[] = date.split("-");
String year = dateArr[0];
String month = dateArr[1];
String day = dateArr[2]; StringBuilder sb = new StringBuilder();
Map<String,String> map = new HashMap<String,String>();
map.put("0", "〇");
map.put("1", "一");
map.put("2", "二");
map.put("3", "三");
map.put("4", "四");
map.put("5", "五");
map.put("6", "六");
map.put("7", "七");
map.put("8", "八");
map.put("9", "九");
map.put("10", "十"); //处理年
char[] yearArr = year.toCharArray();
for(int i=0;i<4;i++){
sb.append(map.get(""+yearArr[i]));
}
sb.append("年"); //处理月
int m = Integer.parseInt(month);
if(m>10){
char[] monthArr = month.toCharArray();
sb.append("十").append(map.get(""+monthArr[1]));
}else{
sb.append(map.get(""+m));
}
sb.append("月"); //处理日
int d = Integer.parseInt(day);
if(d>10){
if(d==20){
sb.append("二十");
}else if(d==30){
sb.append("三十");
}else{
char[] dayArr = day.toCharArray();
switch(dayArr[0]){
case '1':
sb.append("十");
break;
case '2':
sb.append("二十");
break;
case '3':
sb.append("三十");
break;
}
sb.append(map.get(""+dayArr[1]));
} }else{
sb.append(map.get(""+d));
}
sb.append("日"); return sb.toString();
}
 public static void main(String[] args) {
String result = getDxDate("2014-02-28"); System.out.println("==result:"+result);
}
run:
==result:二〇一四年二月二十八日
成功构建 (总时间: 秒)