Java 时间转汉字
在这里插入代码片
/**
* 获取当前时间的中文时间
* @return 中文时间
*/
public String getChineseDate(Timestamp timestamp) {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String time = format.format(timestamp);
String year = time.substring(0,4); // 得到年
String month = time.substring(4,6); // 得到月
String day = time.substring(6); // 得到天
StringBuilder cnDate = new StringBuilder();
for (int i = 0; i < year.length(); i++) {
cnDate.append(toChineseNum(Integer.valueOf(String.valueOf(year.charAt(i)))));
}
cnDate.append("年");
cnDate.append(transformMonAndDay(month));
cnDate.append("月");
cnDate.append(transformMonAndDay(day));
cnDate.append("日");
return cnDate.toString();
}
/**
* 月 和 日
* @param time
* @return
*/
private String transformMonAndDay(String time) {
StringBuilder sb = new StringBuilder();
if (time.length() == 2) {
String value = String.valueOf(time.charAt(0));
if ("0".equals(value)) {
sb.append(toChineseNum(Integer.valueOf(String.valueOf(time.charAt(1)))));
}else if("1".equals(value)){
sb.append("十");
value = String.valueOf(time.charAt(1));
if (!"0".equals(value)) {
sb.append(toChineseNum(Integer.valueOf(String.valueOf(time.charAt(1)))));
}
}else{
sb.append(toChineseNum(Integer.valueOf(String.valueOf(time.charAt(0)))));
sb.append("十");
value = String.valueOf(time.charAt(1));
if (!"0".equals(value)) {
sb.append(toChineseNum(Integer.valueOf(String.valueOf(time.charAt(1)))));
}
}
} else {
sb.append(toChineseNum(Integer.valueOf(String.valueOf(time.charAt(0)))));
}
return sb.toString();
}
/**
* 把阿拉伯数字转换为汉字简写表示
*/
public static String toChineseNum(int n) {
String chineseStr = "";
String[] chineseNum = new String[] { "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
if (n > 9 || n < 0) {
throw new IllegalArgumentException("参数值超出允许范围 (0 ~9)!");
}
chineseStr = chineseNum[n];
return chineseStr;
}