JAVA将输入的日期转换为中文日期。 例如: 2007-10-05 --二七年十月五日)
package com.business.practitioner;
import Java.text.simple date format;
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
*/
公共类数据转换器{
//*
* @param args
*/
publicstaticvoidmain (string [ ] args ) {
//todo自动生成方法stub
String issueDate='2001-12-25 ';
system.out.println (getyear str (formatstr ) issuedate );
}
//*
* create date:2010-5-22下午04:29:37
*说明:将日期转换为指定的格式字符串
* @param date日期
* @return
*/
publicstaticstringgetdatestr (datedate )
{
simpledateformatsdf=newsimpledateformat (yyyy-mm-DD );
stringdatestr=SDF.format(date;
返回数据;
}
//*
* create date:2010-5-22下午03:40:44
*说明:从日期字符串中取出年份字符串
* @param str日期字符串
* @return
*/
公共字符串目标(字符串) )。
{
字符串年数tr=' ';
yar str=str.substring (0,4 );
返回年数;
}
//*
* create date:2010-5-22下午03:40:47
*说明:从日期字符串中取出月字符串
* @param str日期字符串
* @return
*/
公共字符串监视(stringstr ) )。
{
字符串m;
int startIndex=str.indexOf ('年);
int endIndex=str.indexOf ('月);
monthstr=str.substring (startindex 1,endIndex );
返回监视器;
}
//*
* create date:2010-5-22下午03:32:31
*说明:将源字符串中的阿拉伯数字格式为汉字
* @param sign源字符串中的字符
* @return
*/
publicstaticcharformatdigit (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();
}
}