package open.dolphin.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; /** * Utility class to handle MML Date format. * * @author Kazushi Minagawa, Digital Globe, Inc. */ public final class MMLDate extends Object { private static final String MML_DATETIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss"; private static final String MML_DATE_PATTERN = "yyyy-MM-dd"; private static final String MML_TIME_PATTERN = "HH:mm:ss"; /** Creates new MMLDate */ public MMLDate() { } public static String warekiStringFromDate(Date d) { if (d==null) { return null; } Locale locale = new Locale("ja", "JP", "JP"); DateFormat formatter = DateFormat.getDateInstance(DateFormat.FULL, locale); return formatter.format(d); } public static String warekiStringFromMMLDate(String mml) { if (mml == null) { return null; } int year = Integer.parseInt(mml.substring(0, 4)); int month = Integer.parseInt(mml.substring(5, 7)) - 1; int date = Integer.parseInt(mml.substring(8, 10)); GregorianCalendar gc = new GregorianCalendar(year, month, date); return warekiStringFromDate(gc.getTime()); } public static String getDateTime(String pattern) { GregorianCalendar gc = new GregorianCalendar(); SimpleDateFormat f = new SimpleDateFormat(pattern); return f.format(gc.getTime()); } public static String getDateTime() { return getDateTime(new GregorianCalendar()); } public static String getDate() { return getDate(new GregorianCalendar()); } public static String getTime() { return getTime(new GregorianCalendar()); } public static String getDateTime(GregorianCalendar gc) { SimpleDateFormat f = new SimpleDateFormat(MML_DATETIME_PATTERN); return f.format(gc.getTime()); } public static String getDate(GregorianCalendar gc) { SimpleDateFormat f = new SimpleDateFormat(MML_DATE_PATTERN); return f.format(gc.getTime()); } public static String getTime(GregorianCalendar gc) { SimpleDateFormat f = new SimpleDateFormat(MML_TIME_PATTERN); return f.format(gc.getTime()); } public static String getDayFromToday(int n) { GregorianCalendar gc = new GregorianCalendar(); gc.add(Calendar.DAY_OF_MONTH, n); return getDate(gc); } public static String getMonthFromToday(int n) { GregorianCalendar gc = new GregorianCalendar(); gc.add(Calendar.MONTH, n); return getDate(gc); } public static String getYearFromToday(int n) { GregorianCalendar gc = new GregorianCalendar(); gc.add(Calendar.YEAR, n); return getDate(gc); } public static int[] getCalendarYMD(String mmlDate) { int[] ret = new int[3]; try { StringTokenizer st = new StringTokenizer(mmlDate, "-"); // Year String val = st.nextToken(); ret[0] = Integer.parseInt(val); // Month val = st.nextToken(); if (val.charAt(0) == '0') { val = val.substring(1); } ret[1] = Integer.parseInt(val) -1; // day val = st.nextToken(); if (val.charAt(0) == '0') { val = val.substring(1); } ret[2] = Integer.parseInt(val); } catch (Exception e) { ret = null; } return ret; } }