1. 程式人生 > >java實現日期轉中文大寫形式

java實現日期轉中文大寫形式

這是用java實現的將日期轉中文大寫形式的一個工具類

package jb.peng.com.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 日期轉成中文大寫形式
 *
 */
public class DateToUpperChinese {

    private static final String[] NUMBERS = { "零", "壹", "貳", "叄", "肆", "伍",
            "陸", "柒", "捌", "玖" };

    /** 通過 yyyy-MM-dd 得到中文大寫格式 yyyy MM dd 日期 */
public static synchronized String toChinese(String str) { StringBuffer sb = new StringBuffer(); sb.append(getSplitDateStr(str, 0)).append(" ").append( getSplitDateStr(str, 1)).append(" ").append( getSplitDateStr(str, 2)); return sb.toString(); } /** 分別得到年月日的大寫 預設分割符 "-" */
public static String getSplitDateStr(String str, int unit) { // unit是單位 0=年 1=月 2日 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("2008-10-02")); } }

執行程式main方法,測試結果如下:

貳零零捌 拾 貳