码迷,mamicode.com
首页 > 其他好文 > 详细

Custom Date tag

时间:2014-12-16 19:09:21      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   io   color   os   sp   for   strong   

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 = 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

标签:style   blog   ar   io   color   os   sp   for   strong   

原文地址:http://www.cnblogs.com/ryansunyu/p/4167526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!