mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
add method
This commit is contained in:
parent
aa2859443d
commit
93d68637ef
@ -141,6 +141,23 @@ public class NumberChineseFormatter {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数字字符转中文,非数字字符原样返回
|
||||||
|
*
|
||||||
|
* @param c 数字字符
|
||||||
|
* @param isUseTraditional 是否繁体
|
||||||
|
* @return 中文字符
|
||||||
|
* @since 5.3.9
|
||||||
|
*/
|
||||||
|
public static String numberCharToChinese(char c, boolean isUseTraditional) {
|
||||||
|
String[] numArray = isUseTraditional ? traditionalDigits : simpleDigits;
|
||||||
|
int index = c - 48;
|
||||||
|
if (index < 0 || index >= numArray.length) {
|
||||||
|
return String.valueOf(c);
|
||||||
|
}
|
||||||
|
return numArray[index];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 把一个 0~9999 之间的整数转换为汉字的字符串,如果是 0 则返回 ""
|
* 把一个 0~9999 之间的整数转换为汉字的字符串,如果是 0 则返回 ""
|
||||||
*
|
*
|
||||||
|
@ -10,7 +10,6 @@ import java.util.regex.Pattern;
|
|||||||
* 日期格式化类,提供常用的日期格式化对象
|
* 日期格式化类,提供常用的日期格式化对象
|
||||||
*
|
*
|
||||||
* @author Looly
|
* @author Looly
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class DatePattern {
|
public class DatePattern {
|
||||||
|
|
||||||
@ -22,100 +21,173 @@ public class DatePattern {
|
|||||||
* yyyy-MM-dd HH:mm
|
* yyyy-MM-dd HH:mm
|
||||||
* yyyy-MM-dd
|
* yyyy-MM-dd
|
||||||
* </pre>
|
* </pre>
|
||||||
|
*
|
||||||
* @since 5.3.6
|
* @since 5.3.6
|
||||||
*/
|
*/
|
||||||
public static final Pattern REGEX_NORM = Pattern.compile("\\d{4}-\\d{1,2}-\\d{1,2}(\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)?(.\\d{1,3})?");
|
public static final Pattern REGEX_NORM = Pattern.compile("\\d{4}-\\d{1,2}-\\d{1,2}(\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)?(.\\d{1,3})?");
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------------------- Normal
|
//-------------------------------------------------------------------------------------------------------------------------------- Normal
|
||||||
/** 标准日期格式:yyyy-MM-dd */
|
/**
|
||||||
|
* 标准日期格式:yyyy-MM-dd
|
||||||
|
*/
|
||||||
public static final String NORM_DATE_PATTERN = "yyyy-MM-dd";
|
public static final String NORM_DATE_PATTERN = "yyyy-MM-dd";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:yyyy-MM-dd */
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:yyyy-MM-dd
|
||||||
|
*/
|
||||||
public static final FastDateFormat NORM_DATE_FORMAT = FastDateFormat.getInstance(NORM_DATE_PATTERN);
|
public static final FastDateFormat NORM_DATE_FORMAT = FastDateFormat.getInstance(NORM_DATE_PATTERN);
|
||||||
|
|
||||||
/** 标准时间格式:HH:mm:ss */
|
/**
|
||||||
|
* 标准时间格式:HH:mm:ss
|
||||||
|
*/
|
||||||
public static final String NORM_TIME_PATTERN = "HH:mm:ss";
|
public static final String NORM_TIME_PATTERN = "HH:mm:ss";
|
||||||
/** 标准时间格式 {@link FastDateFormat}:HH:mm:ss */
|
/**
|
||||||
|
* 标准时间格式 {@link FastDateFormat}:HH:mm:ss
|
||||||
|
*/
|
||||||
public static final FastDateFormat NORM_TIME_FORMAT = FastDateFormat.getInstance(NORM_TIME_PATTERN);
|
public static final FastDateFormat NORM_TIME_FORMAT = FastDateFormat.getInstance(NORM_TIME_PATTERN);
|
||||||
|
|
||||||
/** 标准日期时间格式,精确到分:yyyy-MM-dd HH:mm */
|
/**
|
||||||
|
* 标准日期时间格式,精确到分:yyyy-MM-dd HH:mm
|
||||||
|
*/
|
||||||
public static final String NORM_DATETIME_MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
|
public static final String NORM_DATETIME_MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
|
||||||
/** 标准日期时间格式,精确到分 {@link FastDateFormat}:yyyy-MM-dd HH:mm */
|
/**
|
||||||
|
* 标准日期时间格式,精确到分 {@link FastDateFormat}:yyyy-MM-dd HH:mm
|
||||||
|
*/
|
||||||
public static final FastDateFormat NORM_DATETIME_MINUTE_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_MINUTE_PATTERN);
|
public static final FastDateFormat NORM_DATETIME_MINUTE_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_MINUTE_PATTERN);
|
||||||
|
|
||||||
/** 标准日期时间格式,精确到秒:yyyy-MM-dd HH:mm:ss */
|
/**
|
||||||
|
* 标准日期时间格式,精确到秒:yyyy-MM-dd HH:mm:ss
|
||||||
|
*/
|
||||||
public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
||||||
/** 标准日期时间格式,精确到秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss */
|
/**
|
||||||
|
* 标准日期时间格式,精确到秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss
|
||||||
|
*/
|
||||||
public static final FastDateFormat NORM_DATETIME_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_PATTERN);
|
public static final FastDateFormat NORM_DATETIME_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_PATTERN);
|
||||||
|
|
||||||
/** 标准日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss.SSS */
|
/**
|
||||||
|
* 标准日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss.SSS
|
||||||
|
*/
|
||||||
public static final String NORM_DATETIME_MS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
|
public static final String NORM_DATETIME_MS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
|
||||||
/** 标准日期时间格式,精确到毫秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss.SSS */
|
/**
|
||||||
|
* 标准日期时间格式,精确到毫秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss.SSS
|
||||||
|
*/
|
||||||
public static final FastDateFormat NORM_DATETIME_MS_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_MS_PATTERN);
|
public static final FastDateFormat NORM_DATETIME_MS_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_MS_PATTERN);
|
||||||
|
|
||||||
/** ISO8601日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss,SSS */
|
/**
|
||||||
|
* ISO8601日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss,SSS
|
||||||
|
*/
|
||||||
public static final String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS";
|
public static final String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS";
|
||||||
/** ISO8601日期时间格式,精确到毫秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss,SSS */
|
/**
|
||||||
|
* ISO8601日期时间格式,精确到毫秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss,SSS
|
||||||
|
*/
|
||||||
public static final FastDateFormat ISO8601_FORMAT = FastDateFormat.getInstance(ISO8601_PATTERN);
|
public static final FastDateFormat ISO8601_FORMAT = FastDateFormat.getInstance(ISO8601_PATTERN);
|
||||||
|
|
||||||
/** 标准日期格式:yyyy年MM月dd日 */
|
/**
|
||||||
|
* 标准日期格式:yyyy年MM月dd日
|
||||||
|
*/
|
||||||
public static final String CHINESE_DATE_PATTERN = "yyyy年MM月dd日";
|
public static final String CHINESE_DATE_PATTERN = "yyyy年MM月dd日";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:yyyy年MM月dd日 */
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:yyyy年MM月dd日
|
||||||
|
*/
|
||||||
public static final FastDateFormat CHINESE_DATE_FORMAT = FastDateFormat.getInstance(CHINESE_DATE_PATTERN);
|
public static final FastDateFormat CHINESE_DATE_FORMAT = FastDateFormat.getInstance(CHINESE_DATE_PATTERN);
|
||||||
|
|
||||||
/** 标准日期格式:yyyy年MM月dd日 HH时mm分ss秒 */
|
/**
|
||||||
|
* 标准日期格式:yyyy年MM月dd日 HH时mm分ss秒
|
||||||
|
*/
|
||||||
public static final String CHINESE_DATE_TIME_PATTERN = "yyyy年MM月dd日HH时mm分ss秒";
|
public static final String CHINESE_DATE_TIME_PATTERN = "yyyy年MM月dd日HH时mm分ss秒";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:yyyy年MM月dd日HH时mm分ss秒*/
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:yyyy年MM月dd日HH时mm分ss秒
|
||||||
|
*/
|
||||||
public static final FastDateFormat CHINESE_DATE_TIME_FORMAT = FastDateFormat.getInstance(CHINESE_DATE_TIME_PATTERN);
|
public static final FastDateFormat CHINESE_DATE_TIME_FORMAT = FastDateFormat.getInstance(CHINESE_DATE_TIME_PATTERN);
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------------------- Pure
|
//-------------------------------------------------------------------------------------------------------------------------------- Pure
|
||||||
/** 标准日期格式:yyyyMMdd */
|
/**
|
||||||
|
* 标准日期格式:yyyyMMdd
|
||||||
|
*/
|
||||||
public static final String PURE_DATE_PATTERN = "yyyyMMdd";
|
public static final String PURE_DATE_PATTERN = "yyyyMMdd";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:yyyyMMdd */
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:yyyyMMdd
|
||||||
|
*/
|
||||||
public static final FastDateFormat PURE_DATE_FORMAT = FastDateFormat.getInstance(PURE_DATE_PATTERN);
|
public static final FastDateFormat PURE_DATE_FORMAT = FastDateFormat.getInstance(PURE_DATE_PATTERN);
|
||||||
|
|
||||||
/** 标准日期格式:HHmmss */
|
/**
|
||||||
|
* 标准日期格式:HHmmss
|
||||||
|
*/
|
||||||
public static final String PURE_TIME_PATTERN = "HHmmss";
|
public static final String PURE_TIME_PATTERN = "HHmmss";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:HHmmss */
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:HHmmss
|
||||||
|
*/
|
||||||
public static final FastDateFormat PURE_TIME_FORMAT = FastDateFormat.getInstance(PURE_TIME_PATTERN);
|
public static final FastDateFormat PURE_TIME_FORMAT = FastDateFormat.getInstance(PURE_TIME_PATTERN);
|
||||||
|
|
||||||
/** 标准日期格式:yyyyMMddHHmmss */
|
/**
|
||||||
|
* 标准日期格式:yyyyMMddHHmmss
|
||||||
|
*/
|
||||||
public static final String PURE_DATETIME_PATTERN = "yyyyMMddHHmmss";
|
public static final String PURE_DATETIME_PATTERN = "yyyyMMddHHmmss";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:yyyyMMddHHmmss */
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:yyyyMMddHHmmss
|
||||||
|
*/
|
||||||
public static final FastDateFormat PURE_DATETIME_FORMAT = FastDateFormat.getInstance(PURE_DATETIME_PATTERN);
|
public static final FastDateFormat PURE_DATETIME_FORMAT = FastDateFormat.getInstance(PURE_DATETIME_PATTERN);
|
||||||
|
|
||||||
/** 标准日期格式:yyyyMMddHHmmssSSS */
|
/**
|
||||||
|
* 标准日期格式:yyyyMMddHHmmssSSS
|
||||||
|
*/
|
||||||
public static final String PURE_DATETIME_MS_PATTERN = "yyyyMMddHHmmssSSS";
|
public static final String PURE_DATETIME_MS_PATTERN = "yyyyMMddHHmmssSSS";
|
||||||
/** 标准日期格式 {@link FastDateFormat}:yyyyMMddHHmmssSSS */
|
/**
|
||||||
|
* 标准日期格式 {@link FastDateFormat}:yyyyMMddHHmmssSSS
|
||||||
|
*/
|
||||||
public static final FastDateFormat PURE_DATETIME_MS_FORMAT = FastDateFormat.getInstance(PURE_DATETIME_MS_PATTERN);
|
public static final FastDateFormat PURE_DATETIME_MS_FORMAT = FastDateFormat.getInstance(PURE_DATETIME_MS_PATTERN);
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------------------- Others
|
//-------------------------------------------------------------------------------------------------------------------------------- Others
|
||||||
/** HTTP头中日期时间格式:EEE, dd MMM yyyy HH:mm:ss z */
|
/**
|
||||||
|
* HTTP头中日期时间格式:EEE, dd MMM yyyy HH:mm:ss z
|
||||||
|
*/
|
||||||
public static final String HTTP_DATETIME_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z";
|
public static final String HTTP_DATETIME_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z";
|
||||||
/** HTTP头中日期时间格式 {@link FastDateFormat}:EEE, dd MMM yyyy HH:mm:ss z */
|
/**
|
||||||
|
* HTTP头中日期时间格式 {@link FastDateFormat}:EEE, dd MMM yyyy HH:mm:ss z
|
||||||
|
*/
|
||||||
public static final FastDateFormat HTTP_DATETIME_FORMAT = FastDateFormat.getInstance(HTTP_DATETIME_PATTERN, TimeZone.getTimeZone("GMT"), Locale.US);
|
public static final FastDateFormat HTTP_DATETIME_FORMAT = FastDateFormat.getInstance(HTTP_DATETIME_PATTERN, TimeZone.getTimeZone("GMT"), Locale.US);
|
||||||
|
|
||||||
/** JDK中日期时间格式:EEE MMM dd HH:mm:ss zzz yyyy */
|
/**
|
||||||
|
* JDK中日期时间格式:EEE MMM dd HH:mm:ss zzz yyyy
|
||||||
|
*/
|
||||||
public static final String JDK_DATETIME_PATTERN = "EEE MMM dd HH:mm:ss zzz yyyy";
|
public static final String JDK_DATETIME_PATTERN = "EEE MMM dd HH:mm:ss zzz yyyy";
|
||||||
/** JDK中日期时间格式 {@link FastDateFormat}:EEE MMM dd HH:mm:ss zzz yyyy */
|
/**
|
||||||
|
* JDK中日期时间格式 {@link FastDateFormat}:EEE MMM dd HH:mm:ss zzz yyyy
|
||||||
|
*/
|
||||||
public static final FastDateFormat JDK_DATETIME_FORMAT = FastDateFormat.getInstance(JDK_DATETIME_PATTERN, Locale.US);
|
public static final FastDateFormat JDK_DATETIME_FORMAT = FastDateFormat.getInstance(JDK_DATETIME_PATTERN, Locale.US);
|
||||||
|
|
||||||
/** UTC时间:yyyy-MM-dd'T'HH:mm:ss'Z' */
|
/**
|
||||||
|
* UTC时间:yyyy-MM-dd'T'HH:mm:ss'Z'
|
||||||
|
*/
|
||||||
public static final String UTC_PATTERN = "yyyy-MM-dd'T'HH:mm:ss'Z'";
|
public static final String UTC_PATTERN = "yyyy-MM-dd'T'HH:mm:ss'Z'";
|
||||||
/** UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ss'Z' */
|
/**
|
||||||
|
* UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ss'Z'
|
||||||
|
*/
|
||||||
public static final FastDateFormat UTC_FORMAT = FastDateFormat.getInstance(UTC_PATTERN, TimeZone.getTimeZone("UTC"));
|
public static final FastDateFormat UTC_FORMAT = FastDateFormat.getInstance(UTC_PATTERN, TimeZone.getTimeZone("UTC"));
|
||||||
|
|
||||||
/** UTC时间:yyyy-MM-dd'T'HH:mm:ssZ */
|
/**
|
||||||
|
* UTC时间:yyyy-MM-dd'T'HH:mm:ssZ
|
||||||
|
*/
|
||||||
public static final String UTC_WITH_ZONE_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ssZ";
|
public static final String UTC_WITH_ZONE_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ssZ";
|
||||||
/** UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ssZ */
|
/**
|
||||||
|
* UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ssZ
|
||||||
|
*/
|
||||||
public static final FastDateFormat UTC_WITH_ZONE_OFFSET_FORMAT = FastDateFormat.getInstance(UTC_WITH_ZONE_OFFSET_PATTERN, TimeZone.getTimeZone("UTC"));
|
public static final FastDateFormat UTC_WITH_ZONE_OFFSET_FORMAT = FastDateFormat.getInstance(UTC_WITH_ZONE_OFFSET_PATTERN, TimeZone.getTimeZone("UTC"));
|
||||||
|
|
||||||
/** UTC时间:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' */
|
/**
|
||||||
|
* UTC时间:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
|
||||||
|
*/
|
||||||
public static final String UTC_MS_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
|
public static final String UTC_MS_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
|
||||||
/** UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' */
|
/**
|
||||||
|
* UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
|
||||||
|
*/
|
||||||
public static final FastDateFormat UTC_MS_FORMAT = FastDateFormat.getInstance(UTC_MS_PATTERN, TimeZone.getTimeZone("UTC"));
|
public static final FastDateFormat UTC_MS_FORMAT = FastDateFormat.getInstance(UTC_MS_PATTERN, TimeZone.getTimeZone("UTC"));
|
||||||
|
|
||||||
/** UTC时间:yyyy-MM-dd'T'HH:mm:ssZ */
|
/**
|
||||||
|
* UTC时间:yyyy-MM-dd'T'HH:mm:ssZ
|
||||||
|
*/
|
||||||
public static final String UTC_MS_WITH_ZONE_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
|
public static final String UTC_MS_WITH_ZONE_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
|
||||||
/** UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ssZ */
|
/**
|
||||||
|
* UTC时间{@link FastDateFormat}:yyyy-MM-dd'T'HH:mm:ssZ
|
||||||
|
*/
|
||||||
public static final FastDateFormat UTC_MS_WITH_ZONE_OFFSET_FORMAT = FastDateFormat.getInstance(UTC_MS_WITH_ZONE_OFFSET_PATTERN, TimeZone.getTimeZone("UTC"));
|
public static final FastDateFormat UTC_MS_WITH_ZONE_OFFSET_FORMAT = FastDateFormat.getInstance(UTC_MS_WITH_ZONE_OFFSET_PATTERN, TimeZone.getTimeZone("UTC"));
|
||||||
}
|
}
|
||||||
|
@ -65,4 +65,18 @@ public class NumberChineseFormatterTest {
|
|||||||
String digitToChinese3 = Convert.digitToChinese(2421.02);
|
String digitToChinese3 = Convert.digitToChinese(2421.02);
|
||||||
Assert.assertEquals("贰仟肆佰贰拾壹元零贰分", digitToChinese3);
|
Assert.assertEquals("贰仟肆佰贰拾壹元零贰分", digitToChinese3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void numberCharToChineseTest(){
|
||||||
|
String s = NumberChineseFormatter.numberCharToChinese('1', false);
|
||||||
|
Assert.assertEquals("一", s);
|
||||||
|
s = NumberChineseFormatter.numberCharToChinese('2', false);
|
||||||
|
Assert.assertEquals("二", s);
|
||||||
|
s = NumberChineseFormatter.numberCharToChinese('0', false);
|
||||||
|
Assert.assertEquals("零", s);
|
||||||
|
|
||||||
|
// 非数字字符原样返回
|
||||||
|
s = NumberChineseFormatter.numberCharToChinese('A', false);
|
||||||
|
Assert.assertEquals("A", s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user