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);
}
}