Ant build 文件中的时间戳

在生成环境中使用当前时间和日期,以某种方式标记某个生成任务的输出,以便记录它是何时生成的,这经常是可取的。

这可能涉及编辑一个文件,以便插入一个字符串来指定日期和时间,或将这个信息合并到 JAR 或 zip 文件的文件名中。

这种需要是通过简单但是非常有用的 tstamp 任务来解决的。

这个任务通常在某次生成过程开始时调用,比如在一个 init 目标中。

这个任务不需要属性,许多情况下只需 就足够了。

tstamp 不产生任何输出;相反,它根据当前系统时间和日期设置 Ant 属性。

下面是 tstamp 设置的一些属性、对每个属性的说明,以及这些属性可被设置到的值的例子: 属性 说明 例子 DSTAMP 设置为当前日期,默认格式为yyyymmdd 20031217 TSTAMP 设置为当前时间,默认格式为 hhmm 1603 TODAY 设置为当前日期,带完整的月份 2003 年 12 月 17 日 例如,在前一小节中,我们按如下方式创建了一个 JAR 文件:<jar destfile="package.jar" basedir="classes"/>在调用 tstamp 任务之后,我们能够根据日期命名该 JAR 文件,如下所示:<jar destfile="package-${DSTAMP}.jar" basedir="classes"/>因此,如果这个任务在 2003 年 12 月 17 日调用,该 JAR 文件将被命名为 package-20031217.jar。

还可以配置 tstamp 任务来设置不同的属性,应用一个当前时间之前或之后的时间偏移,或以不同的方式格式化该字符串。

所有这些都是使用一个嵌套的 format 元素来完成的,如下所示:<tstamp> <format property="OFFSET_TIME" pattern="HH:mm:ss" offset="10" unit="minute" /> </tstamp>上面的清单将 OFFSET_TIME 属性设置为距离当前时间 10 分钟之后的小时数、分钟数和秒数。

用于定义格式字符串的字符与 java.text.SimpleDateFormat 类所定义的那些格式字符相同。