[Ant][StartWithAnt] 第四章 时间戳tstamp

点击此处下载StartWithAnt完整的pdf文档与代码:http://download.csdn.net/detail/sodino/6603769


Ant编译工程中,有时需要在构建环境中使用当前的时间和日期,或标记某个生成任务的输出,以便记录它们是何时发生的,常见的做法是把时间信息直接打印出来或整合到生成的文件名中去。这时就需要使用到时间戳。

使用时间戳时只需要简单的写一个时间戳标签” <tstamp/>”,Ant会自动生成三个可用的与时间相关的属性如下:

DSTAMP:”yyyyMMdd”的形式输出时间,表示年月日,如”20130525”

TSTAMP:以”hhmm”的形式输出时间,表示小时分钟,如”1039”

TODAY:以”MMMM dd yyyy”的形式输出时间,表示年月日,如”May 25 2013”.

示例代码如下:

<tstamp/>
<echo>DSTAMP: ${DSTAMP}</echo>
<echo>TSTAMP: ${TSTAMP}</echo>
<echo>TODAY: ${TODAY}</echo>

代码3.11 时间戳的使用

<!-- 设置引用前缀,可区分 -->
<tstamp prefix="start"/>
<echo>start.DSTAMP: ${start.DSTAMP}</echo>
<echo>start.TSTAMP: ${start.TSTAMP}</echo>
<echo>start.TODAY: ${start.TODAY}</echo>

代码3.12 时间戳前缀使用

如果想要区分多个时间戳,可以使用时间戳内的属性”prefix”来区分。

Ant亦支持自定义时间戳格式,在标签”tstamp”内嵌一”format”即可。”format”支持的属性有:

property:声明当前时间戳的名称

pattern:在这里自定输出的时间格式,

timezone:设置输出时间的时区

locale:根据地区输出时间格式

<tstamp>
    <format property="current.date.time1" pattern="MM_dd_yyyy_HH_mm"/>
    <format property="current.date.time2" pattern="MM-dd-yyyy HH:mm:ss "/>
    <format property="current.date.time3" pattern="MM/dd/yyyy hh:mm:ss a, z"/>
    <!-- 设置延时,负值为过去时间,正值为未来时间,unit设置时间单位 -->
    <format property="current.date.time4" pattern="MM/dd/yyyy hh:mm:ss aa" offset="-10" unit="minute"/>
</tstamp>
<echo>current.date.time1: ${current.date.time1}</echo>
<echo>current.date.time2: ${current.date.time2}</echo>
<echo>current.date.time3: ${current.date.time3}</echo>
<echo>current.date.time4(offset:-10min): ${current.date.time4}</echo>

代码3.12 自定义时间显示格式

format还支持时间差的设置,”offset”用于指定时间差的具体数值,正数表示未来的时间,负数表示已经过去的时间,另外用”unit”设置时间差的具体单位,时间单位可以是:millisecond、second、minute、hour、day、week、month、year。


图3.5 自定义时间显示格式输出

自定义时间戳格式,常用的格式化模式字符见下表

    常见的格式化的模式字符如下:

Letter

Date or Time Component

Presentation

Examples

G

Era designator

Text

AD

y

Year

Year

1996; 96

M

Month in year

Month

July; Jul; 07

w

Week in year

Number

27

W

Week in month

Number

2

D

Day in year

Number

189

d

Day in month

Number

10

F

Day of week in month

Number

2

E

Day in week

Text

Tuesday; Tue

a

Am/pm marker

Text

PM

H

Hour in day (0-23)

Number

0

k

Hour in day (1-24)

Number

24

K

Hour in am/pm (0-11)

Number

0

h

Hour in am/pm (1-12)

Number

12

m

Minute in hour

Number

30

s

Second in minute

Number

55

S

Millisecond

Number

978

z

Time zone

General time zone

Pacific Standard Time; PST; GMT-08:00

Z

Time zone

RFC 822 time zone

-0800

你可能感兴趣的:([Ant][StartWithAnt] 第四章 时间戳tstamp)