2017年6月23日金曜日

Javaで日付関連の自作ユーティリティ

(2017/06/23)


public class DateUtil {


    /**

    * システム日付を返す

    * @return システム日付

    */

    public static java.util.Date getToday() {

        return new java.util.Date(System.currentTimeMillis());

    }

 

    /**

    * システム日付を返す(SQL)

    * @return システム日付

    */

    public static java.sql.Date getTodaySql() {

        return new java.sql.Date(System.currentTimeMillis());

    }

 

    /**

    * パラメータのDateに日数を加算

    * @param date      対象日付

    * @param add_days      加算日数

    * @return              計算後の日付

    */

    public static java.util.Date addDay(java.util.Date date, int add_days) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DATE, add_days);

 

        return new java.util.Date(cal.getTimeInMillis());

    }

 

    /**

    * パラメータのDateに日数を加算(SQL)

    * @param date      対象日付

    * @param add_days      加算日数

    * @return              計算後の日付

    */

    public static java.sql.Date addDaySql(java.sql.Date date, int add_days) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DATE, add_days);

 

        return new java.sql.Date(cal.getTimeInMillis());

    }

 

    /**

    * パラメータのDateに月を加算

    * @param date          対象日付

    * @param add_months    加算月数

    * @return                  計算後の日付

    */

    public static java.util.Date addMonth(java.util.Date date, int add_months) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.MONTH, add_months);

 

        return new java.util.Date(cal.getTimeInMillis());

    }

 

    /**

    * パラメータのDateに月を加算(SQL)

    * @param date          対象日付

    * @param add_months    加算月数

    * @return                  計算後の日付

    */

    public static java.sql.Date addMonthSql(java.sql.Date date, int add_months) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.MONTH, add_months);

 

        return new java.sql.Date(cal.getTimeInMillis());

    }

 

    /**

    * パラメータのDateに年を加算

    * @param date          対象日付

    * @param add_months    加算年数

    * @return                  計算後の日付

    */

    public static java.util.Date addYear(java.util.Date date, int add_years) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.YEAR, add_years);

 

        return new java.util.Date(cal.getTimeInMillis());

    }

 

    /**

    * パラメータのDateに年を加算(SQL)

    * @param date          対象日付

    * @param add_months    加算年数

    * @return                  計算後の日付

    */

    public static java.sql.Date addYearSql(java.sql.Date date, int add_years) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.YEAR, add_years);

 

        return new java.sql.Date(cal.getTimeInMillis());

    }

 

    /**

    * パラメータのDateをYYYY/MM/DDのフォーマットにして返す

    * @param date 対象日付

    * @return 変換後の日付文字列

    */

    public static String formateYyyyMmDd(java.util.Date date) {

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

        return sdf.format(date);

    }

 

    /**

    * パラメータのDateをYYYY/MM/DDのフォーマットにして返す(SQL)

    * @param date 対象日付

    * @return 変換後の日付文字列

    */

    public static String formateYyyyMmDdSql(java.sql.Date date) {

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

        return sdf.format(date);

    }

 

    /**

    * パラメータのDateをYYYY/MMのフォーマットにして返す

    * @param date 対象日付

    * @return 変換後の日付文字列

    */

    public static String formateYyyyMm(java.util.Date date) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM");

        return sdf.format(date);

    }

 

    /**

    * パラメータのDateをYYYY/MMのフォーマットにして返す(SQL)

    * @param date 対象日付

    * @return 変換後の日付文字列

    */

    public static String formateYyyyMmSql(java.sql.Date date) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM");

        return sdf.format(date);

    }

 

    /**

    * システム日時をYYYYMMDDHHMMのフォーマットにして返す

    * @return 変換後の日時文字列

    */

    public static String getTodayYyyyMmDdHhMm() {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");

 

        java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());

 

        return sdf.format(ts);

    }

 

    /**

    * システム日付をyyyy-MM-dd HH:mm:ssのフォーマットにして返す

    * @return 変換後の日付文字列

    */

    public static String getTodayYyyyMmDdHhMmSs() {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 

        java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());

 

        return sdf.format(ts);

    }

 

    /**

    * システム日付をYYYYMMDDのフォーマットにして返す

    * @return 変換後の日付文字列

    */

    public static String getTodayYyyyMmDd() {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

 

        java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());

 

        return sdf.format(ts);

    }

 

    /**

    * システム日付をYYYY/MM/DDのフォーマットにして返す

    * @return 変換後の日付文字列

    */

    public static String getTodayYyyyMmDdWithSlash() {

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

 

        java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());

 

        return sdf.format(ts);

    }

 

 

    /**

    * YYYY-MM-DD(もしくはYYYY/MM/DD)形式の文字列をDateにして返す(java.util.Date 版)

    * @param str_date

    * @return

    */

    public static java.util.Date convertStringToDate(String str_date) {

        // YYYY/MM/DD形式の場合はフォーマットを変更してから処理

        if (str_date.indexOf("/") > -1) {

            str_date = str_date.replaceAll("/", "-");

        }

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

 

        java.util.Date result = null;

        try {

            result = sdf.parse(str_date);

        } catch (ParseException e) {

            e.printStackTrace();

        }

        return result;

    }

 

    /**

    * YYYY-MM-DD(もしくはYYYY/MM/DD)形式の文字列をDateにして返す(SQL)

    * @param str_date

    * @return

    */

    public static java.sql.Date convertStringToDateSql(String str_date) {

        // YYYY/MM/DD形式の場合はフォーマットを変更してから処理

        if (str_date.indexOf("/") > -1) {

            str_date = str_date.replaceAll("/", "-");

        }

 

        return java.sql.Date.valueOf(str_date);

    }

 

}

0 件のコメント:

コメントを投稿