java日期转换成大写工具类
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DateUpperUtil {
private static final String[] NUMBERS = { "〇", "一", "二", "三", "四", "五",
"六", "七", "八", "九" };
public static synchronized String toChinese(String str,int formatFlag) {
StringBuffer sb = new StringBuffer();
switch (formatFlag) {
case 1:
sb.append(getSplitDateStr(str, 0)).append("年");
break;
case 2:
sb.append(getSplitDateStr(str, 0)).append("年").append(
getSplitDateStr(str, 1)).append("月");
break;
default:
sb.append(getSplitDateStr(str, 0)).append("年").append(
getSplitDateStr(str, 1)).append("月").append(
getSplitDateStr(str, 2)).append("日");
break;
}
StringBuffer formatSb = new StringBuffer();
char[] charArr = sb.toString().toCharArray();
for (int i = 0; i < charArr.length; i++) {
formatSb.append(charArr[i]);
if (i != charArr.length - 1) {
formatSb.append(" ");
}
}
return formatSb.toString();
}
public static String getSplitDateStr(String str, int unit) {
String[] DateStr = str.split("-");
if (unit > DateStr.length)
unit = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < DateStr[unit].length(); i++) {
if ((unit == 1 || unit == 2) && Integer.valueOf(DateStr[unit]) > 9) {
sb.append(convertNum(DateStr[unit].substring(0, 1)))
.append("十").append(
convertNum(DateStr[unit].substring(1, 2)));
break;
} else {
sb.append(convertNum(DateStr[unit].substring(i, i + 1)));
}
}
if (unit == 1 || unit == 2) {
return sb.toString().replaceAll("^一", "").replace("〇", "");
}
return sb.toString();
}
private static String convertNum(String str) {
return NUMBERS[Integer.valueOf(str)];
}
public static boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(toChinese("2023-12-22",2));
}
}