|
Dates can be printed with fmt by using the %at format.
The t code indicates a time is being printed, and the a
flag indicates that the next argument is a
strftime() -style format string. Following that
is a time argument. Example: <fmt "%at" "%B" "now"> where
"%B" is the strftime()-style string (indicating the
month should be printed). A capital T may be used instead of
lower-case t to change the timezone to Universal Time (GMT/UTC)
instead of local time for output. These strftime() codes are
available:
-
%a
for the abbreviated weekday name (e.g. Sun, Mon,
Tue, etc.) -
%A
for the full weekday name (e.g. Sunday, Monday,
Tuesday, etc.) -
%b
for the abbreviated month name (e.g. Jan, Feb,
Mar, etc.) -
%B
for the full month name (e.g. January, February,
March, etc.) -
%c
for the preferred date and time representation. -
%d
for the day of the month as a decimal number (range 00 through 31). -
%H
for the hour as a decimal number using a 24-hour clock (range
00 through 23). -
%I
for the hour as a decimal number using a 12-hour clock (range
01 through 12). -
%j
for the day of the year as a decimal number (range 001 through
366). -
%m
for the month as a decimal number (range 01 through 12). -
%M
for the minute as a decimal number (range 00 through 59). -
%p
for AM or PM, depending on the time. -
%S
for the second as a decimal number (range 00 through 61). -
%U
for the week number of the current year as a decimal number, starting
with the first Sunday as the first day of the first week (range
00 through 53). -
%W
for the week number of the current year as a decimal number, starting
with the first Monday as the first day of the first week (range
00 through 53). -
%w
for the day of the week as a decimal, Sunday being 0. -
%x
for the preferred date representation without the time. -
%X
for the preferred time representation without the date. -
%y
for the year as a decimal number without a century (range 00
through 99). -
%Y
for the year as a decimal number including the century. -
%Z
for the time zone or name or abbreviation. -
%%
for a literal `%' character.
Since fmt arguments are typecast if needed
(here), the date argument can be a Texis
date or counter type, or a Texis-parseable date string.
For example, to print today's date in the form month/day/year:
<fmt "%at" "%m/%d/%y" "now">
Or to print the title and insertion date of books matching a query,
in the style "February 20, 1997" (assuming id is a
Texis counter field):
<SQL "select id, Title from books where Desc like $query">
<fmt "%at" "%B %d, %Y" $id> $Title
</SQL>
If the strftime() string is composed entirely of
strftime()-specific codes, none of which have meaning as
<fmt> codes, and there is only one argument given, then the
initial %at may be omitted. For example, to print today's
year, either of these statements may be used:
<fmt "%at" "%Y" "now">
<fmt "%Y" "now">
The second statement eliminates the %at, because %Y is
a strftime()-only code (not valid in <fmt>). Note:
Due to potential confusion and conflicts between strftime() and
<fmt> codes, use of this shorthand is not recommended. Always
use the a flag and a t or T code.
To use a default strftime() format, eliminate the a
flag and its corresponding strftime() format argument:
<fmt "%t" "now">
This will print today's date in a default format.
CAVEATS As dates are printed using the standard C library, not all
strftime() codes are available or behave identically on all
platforms.
Copyright © Thunderstone Software Last updated: Mon Feb 18 10:28:15 EST 2013
|