Sets the DSTAMP
, TSTAMP
, and TODAY
properties in the
current project. By default, the DSTAMP
property is in the format
"yyyyMMdd"
, TSTAMP
is in the format "HHmm"
,
finally TODAY
contains locale-sensitive date, for example "March 13, 2023".
Use the nested <format>
element to specify a different format.
These properties can be used in the build-file, for instance, to create time-stamped filenames, or used to replace placeholder tags inside documents to indicate, for example, the release date. The best place for this task is probably in an initialization target.
The magic property phing.tstamp.now
can be used to specify a fixed date value in order to
create reproducible builds. Its value must be a number and is interpreted as seconds since the epoch (midnight
1970-01-01). With phing.tstamp.now.iso
you could also specify that value in DateTime
compatible format. If you specify a value in an invalid format an INFO message will be logged and the value will
be ignored.
Table B.70: Attributes
Name | Type | Description | Default | Required |
---|---|---|---|---|
prefix
|
String
| Prefix used for all properties set. | n/a | No |
<tstamp/>
sets the standard DSTAMP, TSTAMP, and TODAY properties according to the default formats.
<tstamp> <format property="DAY" pattern="EEEE" locale="nl_NL"/> </tstamp>
sets the standard properties as well as the property DAY
with the pattern "EEEE"
(day of week) using the Dutch locale.
<tstamp prefix="start"/>
sets three properties with the standard formats, prefixed with "start.": start.DSTAMP
,
start.TSTAMP
, and start.TODAY
.
format
The Tstamp
task supports a <format>
nested element
that allows a property to be set to the current date and time in a given format.
Table B.71: Attributes
Name | Type | Description | Default | Required |
---|---|---|---|---|
property
|
String
| The property to receive the date/time string in the given pattern. | n/a | Yes |
pattern
|
String
| The date/time pattern to be used, pattern must follow ICU syntax. | n/a | Yes |
locale
|
String
| The locale used to create date/time string. | n/a | No |
timezone
|
String
| The timezone to use for displaying time. | n/a | No |
ICU syntax replaces string of characters with proper date and time data. Please refer to official ICU documentation to see the complete Date/Time Format Syntax reference.
Table B.72: ICU syntax
Symbol | Meaning | Pattern | Example Output |
---|---|---|---|
y
| year |
yy
y
or
yyyy
|
96
1996 |
M
| month in year |
M
MM
MMMM
|
9
09 September |
d
| day in month |
d
dd
|
2
02 |
E
| day of week |
E ,
EE , or
EEE
EEEE
|
Tue
Tuesday |
a
| AM or PM |
a ,
aa , or
aaa
aaaa
|
PM [abbrev]
PM [wide] |
h
| hour in am/pm (1~12) |
h
hh
|
7
07 |
H
| hour in day (0~23) |
H
HH
|
0
00 |
m
| minute in hour |
m
mm
|
4
04 |
s
| seconds in minute |
s
ss
|
5
05 |
Z
|
Time Zone: ISO8601 basic hms? / RFC 822
Time Zone: long localized GMT (=OOOO) Time Zone: ISO8601 extended hms? (=XXXXX) |
Z ,
ZZ , or
ZZZ
ZZZZ
ZZZZZ
|
-0800
GMT-08:00 -08:00, -07:52:58, Z |
'
| escape for text |
'
| (nothing) |
' '
| two single quotes produce one |
' '
| ' |
ICU syntax was introduced in Phing 3, if you are using an older version then you must use strftime format syntax.