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 = 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());
    }
时间: 2024-10-10 06:09:41

Custom Date tag的相关文章

java web tag文件使用

tag文件简单创建和使用 创建标记文件(.tag) 在标记文件中写入信息 在jsp文件中,引入标记文件 通过关键字调用标记文件 举例说明: 标记文件(show.tag) <%@ tag language="java" pageEncoding="UTF-8"%> <body bgcolor=yellow><P> <% int size=1; for(int i=1;i<=3;i++) { size=size+1; %&

mybatis generator 生成中文注释

mybatis generator默认生成 的注释太奇葩了,完全不能拿到生产去用,不过幸亏提供了接口可以自己扩展.长话短说,要生成如下的domain, package com.demo.domain; /** test_mybatis */ public class TestMybatis { /** 主键 */ private Integer id; /** 字段说明 */ private String name; public Integer getId() { return id; } p

通过实现CommentGenerator接口的方法来实现Mybatis Generator的model生成中文注释

自己手动实现的前提,对maven项目有基本的了解,在本地成功搭建了maven环境,可以参考我之前的文章:maven环境搭建 项目里新建表时model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人是完全接受不了的,在配置中禁用掉注释吧,倒是简单了,可是生成的model类光秃秃的,啥都没有,字段方法没有注释,使用很不方便,别人看也不知道这个字段是啥含义,到最后还是要自己添

Mybatis Generator的model生成中文注释,支持oracle和mysql(通过修改源码的方式来实现)

在看本篇之前,最好先看一下上一篇通过实现CommentGenerator接口的方法来实现中文注释的例子,因为很多操作和上一篇基本是一致的,所以本篇可能不那么详细. 首先说一下上篇通过实现CommentGenerator接口的一些不足,毕竟只是实现了CommentGenerator接口,在里面的方法再怎么改,有效的也只是针对model类,并且使用的人大概也发现了,里面的addClassComment方法都知道是在类文件上面生成注释,但是无论我们在这个方法实现里写什么都没有效果,其实因为MGB默认是

snakeyaml - Documentation.wiki

SnakeYAML Documentation This documentation is very brief and incomplete. Feel free to fix or improve it. Installation If you use Maven just add a dependency as described here. If you do not use Maven download the latest JAR and put it to the classpat

Django1.3 模板标签和过滤器

内建标签 autoescape 控制HTML转义,参数是:on 或 off.效果和使用safe或escape过滤器相同. {% autoescape on %} {{ body }} {% endautoescape %} block 定义一个能被子模板覆盖的区块. comment 模板引擎会忽略掉 {% comment %} 和 {% endcomment %} 之间的所有内容 csrf_token 防止跨站请求伪造. <form action="." method="

Mybatis Generator的model生成中文注释,支持oracle和mysql(通过实现CommentGenerator接口的方法来实现)

在看本篇之前,最好先看一下上一篇通过实现CommentGenerator接口的方法来实现中文注释的例子,因为很多操作和上一篇基本是一致的,所以本篇可能不那么详细. 首先说一下上篇通过实现CommentGenerator接口的一些不足,毕竟只是实现了CommentGenerator接口,在里面的方法再怎么改,有效的也只是针对model类,并且使用的人大概也发现了,里面的addClassComment方法都知道是在类文件上面生成注释,但是无论我们在这个方法实现里写什么都没有效果,其实因为MGB默认是

实习小结(四)--- MyBatis Generator使用

第一次听闻MyBatis Generator插件很是惊讶,已经有这么便捷方式的工具通过数据库表来自动生成实体类,映射文件,接口以及帮助类,而且可以通过自己写方法来增加中文注释,遂来学习一波.首先先建一个Maven的java项目 项目的目录结构 1.首先是pom.xml中的配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

mybatis根据数据库表结构自动生成实体类,dao,mapper

首先, pom需要引入 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> <!-- mybatis--> <dependency> <group