/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JCHFomatString
 *	ソースファイル名：JCHFomatString.java
 *	作成者			：富士通
 *	日付			：2012年02月21日
 *＜機能概要＞
 *	文字列書式の変換を行う共通機能を提供する。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/02/21	富士通		新規作成
 *
 **********************************************************************/
package eo.web.webview.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;

import eo.common.constant.JACStrConst;
import eo.common.util.JPCCommonUtil;

/**
 * 文字列書式の変換を行うクラスです。<p>
 * <br>
 * @author 富士通
 */
public class JCHFomatString extends JPCCommonUtil 
{
	/** 
	 * 年月日書式(yyyyMMdd) 
	 */
	private static final String FMT_YMD = "yyyyMMdd";

	/** 
	 * 年月日書式(yyyyMMdd)の桁数 
	 */
	private static final int YMD = 8;

	/** 
	 * 年月書式(yyyyMM) 
	 */
	private static final String FMT_YM = "yyyyMM";

	/**
	 * yyyy/MM/dd形式をyyyyMMに編集します。
	 * <br>
	 * @param arg0 年月日書式に編集する文字列(yyyy/MM/dd)
	 * @return String 年月日書式に編集された文字列(yyyyMM)
	 */
	public static String formatYearMonth(String arg0) 
	{
		if(JCHFomatString.isNull(arg0)) 
		{
			return arg0;
		}

		if(!JCHFomatString.isValidParameter(arg0.replace(JACStrConst.SLASH, JACStrConst.KARA_MOJI), YMD)) 
		{
			return arg0;
		}

		return toFormatDate(arg0, FMT_YMD, FMT_YM);
	}

	/**
	 * 日付オブジェクトを指定された形式の文字列に編集します。
	 * <br>
	 * @param arg0 編集する日付オブジェクト
	 * @param arg1 java.util.Date型の日付書式
	 * @param arg2 編集する文字列の日付書式
	 * @return String 指定された形式に編集された文字列
	 */
	private static String toFormatDate(String arg0, String arg1, String arg2) 
	{
		try 
		{
			SimpleDateFormat instance = new SimpleDateFormat(arg1);

			return new SimpleDateFormat(arg2).format(instance.parse(arg0));

		}
		catch (ParseException pe) 
		{
			return arg0;
		}
	}

}
