Używasz po prostu funkcji
Date() w ten np. sposób:
W ten sposób na ogół wyświetlona zostanie data krótka ustawiona w systemie. By jednak mieć pewność, że zawsze tak będzie, należałoby to zrobić tak:
TFormatSettings fSettings;
GetLocaleFormatSettings(1045, fSettings);
Edit1->Text = Date().FormatString(fSettings.ShortDateFormat);
Datę podobnie jak czas możesz też formatować po swojemu, np:
Edit1->Text = Date().FormatString("dddd dd mmmm yyyy");
Edit2->Text = Time().FormatString("hh-nn-ss");
Edit3->Text = TDateTime::CurrentDateTime().FormatString("dd-mmmm-yyyy hh-nn-ss");;
Możesz również wstawiać dowolny tekst między formatowaną datę, ale ów tekst musi być ujęty w apostrofy:
Edit1->Text = Date().FormatString("'dziś jest' dddd 'dnia' dd ', miesiąca' mmmm ', roku' yyyy");
TFormatSettings fSettings;
GetLocaleFormatSettings(1045, fSettings);
Edit1->Text = Date().FormatString("'Aktualna data: '" + fSettings.ShortDateFormat);
Do pobrania aktualnej daty masz jeszcze funkcję
Now():
TFormatSettings fSettings;
GetLocaleFormatSettings(1045, fSettings);
Edit1->Text = Now();
Edit2->Text = Now().FormatString("'Aktualna data: '" + fSettings.ShortDateFormat);
Edit3->Text = Now().FormatString("'Aktualny czas: '" + fSettings.LongTimeFormat);
Edit4->Text = Now().FormatString("'Dziś jest:' dd-mm-yyyy");
Edit5->Text = Now().FormatString("'Godz.:' hh:nn:ss");
oraz funkcję
TDateTime::CurrentDate():
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TFormatSettings fSettings;
GetLocaleFormatSettings(1045, fSettings);
TDate Today = TDate::CurrentDate();
Edit1->Text = Today;
Edit2->Text = Today.FormatString("'Aktualna data: '" + fSettings.ShortDateFormat);
}
Dla czasu masz odpowiednio:
TDateTime::CurrentTime(), a dla daty i czasu -
TDateTime::CurrentDateTime().
Jeżeli tworzysz obiekt tylko typu
TDate, to zwróci on tylko datę, podobnie jak
TTime zwróci tylko czas. Jeżeli potrzebujesz jednocześnie daty i czasu, to należy użyć typu
TDateTime:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TFormatSettings fSettings;
GetLocaleFormatSettings(1045, fSettings);
TDateTime Today = TDateTime::CurrentDateTime();
Edit1->Text = Today;
Edit2->Text = Today.FormatString("'Aktualna data: '" + fSettings.ShortDateFormat);
Edit3->Text = Today.FormatString("'Aktualny czas: '" + fSettings.LongTimeFormat);
Edit4->Text = Today.FormatString("'Dziś jest: '" + fSettings.ShortDateFormat +
"' godz.: '" + fSettings.LongTimeFormat);
}
Można też po prostu tak:
Edit1->Text = TDate::CurrentDate().FormatString("dd-mm-yyyy");
Edit2->Text = TTime::CurrentTime().FormatString("hh:nn:ss");
Edit3->Text = TDateTime::CurrentTDateTime().FormatString("dddd dd mmmm yyyy',' hh:nn:ss");
Tutaj ciekawe spostrzeżenie, jeżeli użyjesz typy
TDate z
TDate::CurrentTime(), to pomimo iż
TDate zwraca datę, to zwróci również czas:
TDate Today = TDate::CurrentTime();
Podobnie z
TTime:
TTime Today = TTime::CurrentDate();
Nie polecam jednak takich kombinacji, gdyż nigdy nie wiadomo co z tego wyniknie.