banbara23
8/31/2017 - 4:05 AM

DateFormatHelper.java

import android.text.TextUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class DateFormatHelper {
    public static final String DATE_FORMAT_PATTERN_1 = "yyyyMMdd";
    public static final String DATE_FORMAT_PATTERN_2 = "yyyyMMddhhmm";
    public static final String DATE_FORMAT_PATTERN_3 = "yyyyMMddhhmmss";
    public static final String DATE_FORMAT_PATTERN_4 = "yyyy/MM/dd(E)";
    public static final String DATE_FORMAT_PATTERN_5 = "yyyy/MM/dd";
    public static final String DATE_FORMAT_PATTERN_6 = "yyyyMMdd000000";

    /**
     * Date型から指定したフォーマットの文字列へ変換
     *
     * @param time
     * @param pattern
     * @return
     */
    public static Date toDate(String time, String pattern) {
        if (TextUtils.isEmpty(time)) {
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(pattern, Locale.JAPAN);
        try {
            return sdf.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 指定したフォーマットの文字列からDate型へ変換
     *
     * @param d
     * @param pattern
     * @return
     */
    public static String toStr(Date d, String pattern) {
        if (d == null) {
            return "";
        }
        SimpleDateFormat sdf = new SimpleDateFormat(pattern, Locale.JAPAN);
        return sdf.format(d);
    }

    /**
     * 文字列から指定したフォーマットの年月日文字列に変換
     *
     * @param origTime    時間文字列
     * @param origPattern 変換元のパターン
     * @param newPattern  変換先のパターン
     * @return
     */
    public static String formatTime(String origTime, String origPattern, String newPattern) {
        if (TextUtils.isEmpty(origTime)) {
            return null;
        }
        SimpleDateFormat orgSdf = new SimpleDateFormat(origPattern, Locale.JAPAN);
        SimpleDateFormat newSdf = new SimpleDateFormat(newPattern, Locale.JAPAN);
        try {
            Date date = orgSdf.parse(origTime);
            return newSdf.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 今日の日付で時刻が00:00:00のDate型を返す
     */
    public static Date getTodayStartTime() {
        String todayStr = toStr(new Date(), DATE_FORMAT_PATTERN_1);
        return toDate(todayStr, DATE_FORMAT_PATTERN_1);
    }
}