public static String formatChineseDate(Calendar calendar, boolean withTime) {
		final StringBuilder result = StrUtil.builder();

		// 年
		final String year = String.valueOf(calendar.get(Calendar.YEAR));
		final int length = year.length();
		for (int i = 0; i < length; i++) {
			result.append(NumberChineseFormatter.numberCharToChinese(year.charAt(i), false));
		}
		result.append('年');

		// 月
		int month = calendar.get(Calendar.MONTH) + 1;
		result.append(NumberChineseFormatter.formatThousand(month, false));
		result.append('月');

		// 日
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		result.append(NumberChineseFormatter.formatThousand(day, false));
		result.append('日');

		// 只替换年月日，时分秒中零不需要替换
		String temp = result.toString().replace('零', '〇');
		result.delete(0, result.length());
		result.append(temp);


		if (withTime) {
			// 时
			int hour = calendar.get(Calendar.HOUR_OF_DAY);
			result.append(NumberChineseFormatter.formatThousand(hour, false));
			result.append('时');
			// 分
			int minute = calendar.get(Calendar.MINUTE);
			result.append(NumberChineseFormatter.formatThousand(minute, false));
			result.append('分');
			// 秒
			int second = calendar.get(Calendar.SECOND);
			result.append(NumberChineseFormatter.formatThousand(second, false));
			result.append('秒');
		}

		return result.toString();
	}
@Test
	public void formatChineseDate() {
		Calendar calendar = Objects.requireNonNull(DateUtil.parse("2018-02-24 12:13:14")).toCalendar();
		final String chineseDate = CalendarUtil.formatChineseDate(calendar, false);
		assertEquals("二〇一八年二月二十四日", chineseDate);
		final String chineseDateTime = CalendarUtil.formatChineseDate(calendar, true);
		assertEquals("二〇一八年二月二十四日十二时十三分十四秒", chineseDateTime);
	}