You need to find the year, month, and day values for today's date.
Use
erlang:now(), and
now_to_datetime to get a date structure
type representing today.
1> {{Year,Month,Day},_} = calendar:now_to_datetime(erlang:now()).
{{2004,8,27},{23,33,40}} |
Using the
io or
io_lib module, you can easily convert a date
structure to a string.
% Note: This example uses the above form to bind Year, Month, and Day
2> io:fwrite("Today's Date is ~2B/~2B/~4B\n",
2> [Month, Day, Year]).
Today's Date is 8/27/2004
ok |
We can get fancier and show the time as well.
3> {{Year,Month,Day},{Hour,Min,Sec} =
3> calendar:now_to_datetime(erlang:now()).
{{2004,8,27},{23,33,40}}
4> io:fwrite("Today's Date is ~2B/~2B/~4B ~2B:~2.10.0B:~2.10.0B\n",
4> [Month, Day, Year, Hour, Min, Sec]).
Today's Date is 8/27/2004 23:59:06
Note the use of the three-part
B format specification. The first part is the number of digits to show (2), the second is the base of
the number (decimal in this case), and the third is a character to
fill any single-digit numbers with (in this case, we want leading
zeros).
Ideally, it would be nice if a few convenience functions were
available to provide locale-specific date and time formats, but these
do not seem to be present in Erlang at this time.
This is extra sad for developers dealing with varying cultures, where dates and time are printed in different formats (Canada: DD/MM/YYYY; US: MM/DD/YYYY; Scandinavia: YYYY-MM-DD; Germany: DD.MM.YYYY; etc). For embedded systems, this may not be so bad, but for user-visible systems like
MochiWeb?, it starts to hurt to have to build these yourself.
Based on work by
FranciscoSolsona.
--
BrentAFulgham - 27 Aug 2004