java中文日期_JAVA将输入的日期转换为中文日期

JAVA将输入的日期转换为中文日期(例如: 2007-10-05 --> 二○○七年十月五日)

package com.business.practitioner;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* Creation date: 2010-5-22下午03:41:58

* 功能: 将输入的日期转换为中文日期(例如: 2007-10-05 --> 二○○七年十月五日)

* 说明:此程序假定输入格式为yyyy-mm-dd, 且年月日部分都为数字, 没有加上非法

* 输入的相关校验

* 测试可以输入 2007-01-05

* 2007-1-05

* 2007-10-05

*/

public class DateConvertor {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String issueDate = "2001-12-25";

System.out.println(getYearStr(formatStr(issueDate)));

}

/**

* create date:2010-5-22下午04:29:37

* 描述:将日期转换为指定格式字符串

* @param date 日期

* @return

*/

public static String getDateStr(Date date)

{

SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );

String datestr = sdf.format(date);

return datestr;

}

/**

* create date:2010-5-22下午03:40:44

* 描述:取出日期字符串中的年份字符串

* @param str 日期字符串

* @return

*/

public static String getYearStr(String str)

{

String yearStr = "";

yearStr = str.substring(0,4);

return yearStr;

}

/**

* create date:2010-5-22下午03:40:47

* 描述:取出日期字符串中的月份字符串

* @param str日期字符串

* @return

*/

public static String getMonthStr(String str)

{

String m;

int startIndex = str.indexOf("年");

int endIndex = str.indexOf("月");

monthStr = str.substring(startIndex+1,endIndex);

return monthStr;

}

/**

* create date:2010-5-22下午03:32:31

* 描述:将源字符串中的阿拉伯数字格式化为汉字

* @param sign 源字符串中的字符

* @return

*/

public static char formatDigit(char sign){

if(sign == '0')

sign = '0';

if(sign == '1')

sign = '一';

if(sign == '2')

sign = '二';

if(sign == '3')

sign = '三';

if(sign == '4')

sign = '四';

if(sign == '5')

sign = '五';

if(sign == '6')

sign = '六';

if(sign == '7')

sign = '七';

if(sign == '8')

sign = '八';

if(sign == '9')

sign = '九';

return sign;

}

/**

* create date:2010-5-22下午03:31:51

* 描述: 获得月份字符串的长度

* @param str 待转换的源字符串

* @param pos1 第一个'-'的位置

* @param pos2 第二个'-'的位置

* @return

*/

public static int getMidLen(String str,int pos1,int pos2){

return str.substring(pos1+1, pos2).length();

}

/**

* create date:2010-5-22下午03:32:17

* 描述:获得日期字符串的长度

* @param str 待转换的源字符串

* @param pos2 第二个'-'的位置

* @return

*/

public static int getLastLen(String str,int pos2){

return str.substring(pos2+1).length();

}

/**

* create date:2010-5-22下午03:40:50

* 描述:取出日期字符串中的日字符串

* @param str 日期字符串

* @return

*/

public static String getDayStr(String str)

{

String dayStr = "";

int startIndex = str.indexOf("月");

int endIndex = str.indexOf("日");

dayStr = str.substring(startIndex+1,endIndex);

return dayStr;

}

/**

* create date:2010-5-22下午03:32:46

* 描述:格式化日期

* @param str 源字符串中的字符

* @return

*/

public static String formatStr(String str){

StringBuffer sb = new StringBuffer();

int pos1 = str.indexOf("-");

int pos2 = str.lastIndexOf("-");

for(int i = 0; i < 4; i++){

sb.append(formatDigit(str.charAt(i)));

}

sb.append('年');

if(getMidLen(str,pos1,pos2) == 1){

sb.append(formatDigit(str.charAt(5))+"月");

if(str.charAt(7) != '0'){

if(getLastLen(str, pos2) == 1){

sb.append(formatDigit(str.charAt(7))+"日");

}

if(getLastLen(str, pos2) == 2){

if(str.charAt(7) != '1' && str.charAt(8) != '0'){

sb.append(formatDigit(str.charAt(7))+"十"+formatDigit(str.charAt(8))+"日");

}

else if(str.charAt(7) != '1' && str.charAt(8) == '0'){

sb.append(formatDigit(str.charAt(7))+"十日");

}

else if(str.charAt(7) == '1' && str.charAt(8) != '0'){

sb.append("十"+formatDigit(str.charAt(8))+"日");

}

else{

sb.append("十日");

}

}

}

else{

sb.append(formatDigit(str.charAt(8))+"日");

}

}

if(getMidLen(str,pos1,pos2) == 2){

if(str.charAt(5) != '0' && str.charAt(6) != '0'){

sb.append("十"+formatDigit(str.charAt(6))+"月");

if(getLastLen(str, pos2) == 1){

sb.append(formatDigit(str.charAt(8))+"日");

}

if(getLastLen(str, pos2) == 2){

if(str.charAt(8) != '0'){

if(str.charAt(8) != '1' && str.charAt(9) != '0'){

sb.append(formatDigit(str.charAt(8))+"十"+formatDigit(str.charAt(9))+"日");

}

else if(str.charAt(8) != '1' && str.charAt(9) == '0'){

sb.append(formatDigit(str.charAt(8))+"十日");

}

else if(str.charAt(8) == '1' && str.charAt(9) != '0'){

sb.append("十"+formatDigit(str.charAt(9))+"日");

}

else{

sb.append("十日");

}

}

else{

sb.append(formatDigit(str.charAt(9))+"日");

}

}

}

else if(str.charAt(5) != '0' && str.charAt(6) == '0'){

sb.append("十月");

if(getLastLen(str, pos2) == 1){

sb.append(formatDigit(str.charAt(8))+"日");

}

if(getLastLen(str, pos2) == 2){

if(str.charAt(8) != '0'){

if(str.charAt(8) != '1' && str.charAt(9) != '0'){

sb.append(formatDigit(str.charAt(8))+"十"+formatDigit(str.charAt(9))+"日");

}

else if(str.charAt(8) != '1' && str.charAt(9) == '0'){

sb.append(formatDigit(str.charAt(8))+"十日");

}

else if(str.charAt(8) == '1' && str.charAt(9) != '0'){

sb.append("十"+formatDigit(str.charAt(9))+"日");

}

else{

sb.append("十日");

}

}

else{

sb.append(formatDigit(str.charAt(9))+"日");

}

}

}

else{

sb.append(formatDigit(str.charAt(6))+"月");

if(getLastLen(str, pos2) == 1){

sb.append(formatDigit(str.charAt(8))+"日");

}

if(getLastLen(str, pos2) == 2){

if(str.charAt(8) != '0'){

if(str.charAt(8) != '1' && str.charAt(9) != '0'){

sb.append(formatDigit(str.charAt(8))+"十"+formatDigit(str.charAt(9))+"日");

}

else if(str.charAt(8) != '1' && str.charAt(9) == '0'){

sb.append(formatDigit(str.charAt(8))+"十日");

}

else if(str.charAt(8) == '1' && str.charAt(9) != '0'){

sb.append("十"+formatDigit(str.charAt(9))+"日");

}

else{

sb.append("十日");

}

}

else{

sb.append(formatDigit(str.charAt(9))+"日");

}

}

}

}

return sb.toString();

}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值