首页 > 代码库 > Custom Date tag

Custom Date tag

Custom Date tag: custom date based on pattern format. Default date is current day.
  <CUSTOMDATE[+,-][value][scale],Pattern>
  User can define the date format by customize the parameter Pattern.
  Scale is only recognized within below option:
    “Y” for year, “M” for month, “D” for day
Sample:
  Suppose today is 16 Dec 2014
    <CUSTOMDATE+1M,MMM yyyy> return as “Jan 2015”
    <CUSTOMDATE-1D,ddMMyyyy> return as “15122015”
    <CUSTOMDATE-2Y,dd*MMMMyyyy> return as “16*December2012”

   /**     * @param input     *            <CUSTOMDATE[+,-][number][scale],Pattern>     * @return custom date based on pattern format. default date is current day     */    private String customDate(String input) {        input = input.substring(1, input.length() - 1);        String pattern = input.split(",")[1].trim();        input = input.split(",")[0].trim();        Date now = new Date();        SimpleDateFormat ft = new SimpleDateFormat(pattern);        GregorianCalendar gc = new GregorianCalendar();        gc.setTime(now);        int len = "CUSTOMDATE".length();        if (input.length() == len) {            return ft.format(now);        } else if (input.length() < len) {            return "The format you input is incorrect! Please make sure the format is <CUSTOMDATE[+,-][number][scale],Pattern>";        } else {            String math = input.substring(len, len + 1);            int value = http://www.mamicode.com/Integer.parseInt(input.substring(len + 1,                    input.length() - 1));            String scale = input.substring(input.length() - 1);            if (math.equals("-")) {                value = -value;            } else if (!math.equals("+")) {                return "Math is wrong. Can only use +/-.";            }            int field = 0;            if (scale.equalsIgnoreCase("Y")) {                field = 1;            } else if (scale.equalsIgnoreCase("M")) {                field = 2;            } else if (scale.equalsIgnoreCase("D")) {                field = 5;            }            if (field == 0) {                return "The scale is wrong. Can only use Y/M/D.";            }            gc.add(field, value);        }        return ft.format(gc.getTime());    }

 

Custom Date tag