java中日期转化为汉字_java将日期修改修改为汉字

如2012-10-10转换为二〇一二年十月十日

写的比较繁琐,有没有高手帮忙改进下

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

public class TimeUtil

{

public String chtime(Date date)

{

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

String sdate = sdf.format(date);

String newsdate[] = new String[8];

//全部转化为汉字

for(int i=0;i

{

int k = Integer.parseInt(Character.toString(sdate.charAt(i)));

switch (k)

{

case 0:

newsdate[i]="〇";

break;

case 1:

newsdate[i]="一";

break;

case 2:

newsdate[i]="二";

break;

case 3:

newsdate[i]="三";

break;

case 4:

newsdate[i]="四";

break;

case 5:

newsdate[i]="五";

break;

case 6:

newsdate[i]="六";

break;

case 7:

newsdate[i]="七";

break;

case 8:

newsdate[i]="八";

break;

case 9:

newsdate[i]="九";

break;

}

}

//加入年月日

List s1 = new ArrayList();

for(int i=0;i<8;i++)

{

if(i<4)

{

s1.add(newsdate[i]);

}

else if(i==4)

{

s1.add("年");

s1.add(newsdate[i]);

}

else if(i==5)

{

s1.add(newsdate[i]);

}

else if(i==6)

{

s1.add("月");

s1.add(newsdate[i]);

}

else if(i==7)

{

s1.add(newsdate[i]);

s1.add("日");

}

}

String newstr="";

for(String s:s1)

{

newstr+=s;

}

/*

* 截取月份、日期

*/

int i = newstr.indexOf("年");

int j = newstr.indexOf("月");

String month = newstr.substring(i+1, j);

String day = newstr.substring(j+1, newstr.length()-1);

/*

* 处理月份

*/

String str1 = month.substring(0,1);

String str2 = month.substring(1);

String newmonth="";

if("〇".equals(str1))

{

newmonth = str2;

}

else if("一".equals(str1)&&"〇".equals(str2))

{

newmonth = "十";

}

else if("一".equals(str1)&&!"〇".equals(str2))

{

newmonth = "十"+str2;

}

/*

* 处理日期

*/

String st1 = day.substring(0,1);

String st2 = day.substring(1);

String newday = "";

if("〇".equals(st1))

{

newday = st2;

}

else if("一".equals(st1)&&"〇".equals(st2))

{

newday = "十";

}

else if("一".equals(st1)&&!"〇".equals(st2))

{

newday = "十"+st2;

}

else if("二".equals(st1)&&"〇".equals(st2))

{

newday = st1+"十";

}

else if("二".equals(st1)&&!"〇".equals(st2))

{

newday = st1+"十"+st2;

}

else if("三".equals(st1)&&"〇".equals(st2))

{

newday = st1+"十";

}

else if("三".equals(st1)&&!"〇".equals(st2))

{

newday = st1+"十"+st2;

}

String newstring = newstr.substring(0, i)+"年"+newmonth+"月"+newday+"日";

return newstring;

}

public static void main(String[] args)

{

TimeUtil t = new TimeUtil();

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

try

{

Date d = sdf.parse("20121010");

System.out.println(t.chtime(d));

}

catch (ParseException e)

{

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值