点击此处下载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 |