RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
SysUtils.FormatDateTime Function

Formats a TDateTime value.

Pascal
function FormatDateTime(const Format: string; DateTime: TDateTime): string; overload;
function FormatDateTime(const Format: string; DateTime: TDateTime; const FormatSettings: TFormatSettings): string; overload;
C++
AnsiString FormatDateTime(const AnsiString Format, TDateTime DateTime);
AnsiString FormatDateTime(const AnsiString Format, TDateTime DateTime, const TFormatSettings FormatSettings);

FormatDateTime formats the TDateTime value given by DateTime using the format given by Format. See the table below for information about the supported format strings. 

If the string specified by the Format parameter is empty, the TDateTime value is formatted as if a 'c' format specifier had been given. 

The first form of FormatDateTime is not thread-safe, because it uses localization information contained in global variables. The second form of FormatDateTime, which is thread-safe, refers to localization information contained in the FormatSettings parameter. Before calling the thread-safe form of FormatDateTime, you must populate FormatSettings with localization information. To populate FormatSettings with a set of default locale values, call GetLocaleFormatSettings

Date Time Format Strings are composed from specifiers that represent values to be inserted into the formatted string. Some specifiers (such as "d"), simply format numbers or strings. Other specifiers (such as "/") refer to locale-specific strings from global variables. 

In the following table, specifiers are given in lower case. Case is ignored in formats, except for the "am/pm" and "a/p" specifiers.

Specifier 
Displays 
c  
Displays the date using the format given by the ShortDateFormat global variable, followed by the time using the format given by the LongTimeFormat global variable. The time is not displayed if the date-time value indicates midnight precisely.  
d  
Displays the day as a number without a leading zero (1-31).  
dd  
Displays the day as a number with a leading zero (01-31).  
ddd  
Displays the day as an abbreviation (Sun-Sat) using the strings given by the ShortDayNames global variable.  
dddd  
Displays the day as a full name (Sunday-Saturday) using the strings given by the LongDayNames global variable.  
ddddd  
Displays the date using the format given by the ShortDateFormat global variable.  
dddddd  
Displays the date using the format given by the LongDateFormat global variable.  
e  
(Windows only) Displays the year in the current period/era as a number without a leading zero (Japanese, Korean and Taiwanese locales only).  
ee  
(Windows only) Displays the year in the current period/era as a number with a leading zero (Japanese, Korean and Taiwanese locales only).  
g  
(Windows only) Displays the period/era as an abbreviation (Japanese and Taiwanese locales only).  
gg  
(Windows only) Displays the period/era as a full name. (Japanese and Taiwanese locales only).  
m  
Displays the month as a number without a leading zero (1-12). If the m specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.  
mm  
Displays the month as a number with a leading zero (01-12). If the mm specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.  
mmm  
Displays the month as an abbreviation (Jan-Dec) using the strings given by the ShortMonthNames global variable.  
mmmm  
Displays the month as a full name (January-December) using the strings given by the LongMonthNames global variable.  
yy  
Displays the year as a two-digit number (00-99).  
yyyy  
Displays the year as a four-digit number (0000-9999).  
h  
Displays the hour without a leading zero (0-23).  
hh  
Displays the hour with a leading zero (00-23).  
n  
Displays the minute without a leading zero (0-59).  
nn  
Displays the minute with a leading zero (00-59).  
s  
Displays the second without a leading zero (0-59).  
ss  
Displays the second with a leading zero (00-59).  
z  
Displays the millisecond without a leading zero (0-999).  
zzz  
Displays the millisecond with a leading zero (000-999).  
t  
Displays the time using the format given by the ShortTimeFormat global variable.  
tt\  
Displays the time using the format given by the LongTimeFormat global variable.  
am/pm  
Uses the 12-hour clock for the preceding h or hh specifier, and displays 'am' for any hour before noon, and 'pm' for any hour after noon. The am/pm specifier can use lower, upper, or mixed case, and the result is displayed accordingly.  
a/p  
Uses the 12-hour clock for the preceding h or hh specifier, and displays 'a' for any hour before noon, and 'p' for any hour after noon. The a/p specifier can use lower, upper, or mixed case, and the result is displayed accordingly.  
ampm  
Uses the 12-hour clock for the preceding h or hh specifier, and displays the contents of the TimeAMString global variable for any hour before noon, and the contents of the TimePMString global variable for any hour after noon.  
/  
Displays the date separator character given by the DateSeparator global variable.  
:  
Displays the time separator character given by the TimeSeparator global variable.  
'xx'/"xx"  
Characters enclosed in single or double quotes are displayed as-is, and do not affect formatting.  

 

C++ Examples: 

/*
The following example uses FormatDateTime to set the string
variable S to a sentence indicating a meeting time in 3
hours. The sentence has the form "The meeting is on
Wednesday, February 15, 1995 at 2:30 PM."
*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString S = "The meeting is on ";
  S = S + FormatDateTime("dddd, mmmm d, yyyy ' at ' hh:mm AM/PM", IncHour(Now(), 3));
  Label1->Caption = S;
}

 

Delphi Examples: 

{
The following example uses FormatDateTime to set the string
variable S to a sentence indicating a meeting time in 3
hours. The sentence has the form "The meeting is on
Wednesday, February 15, 2008 at 2:30 PM."
}
procedure TForm1.Button1Click(Sender: TObject);
var S : string;
begin
  S := SysUtils.FormatDateTime(
    '"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', IncHour(Now(), 3));
  Label1.Caption := S;
end;

 

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!