Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как программно получать время в русском формате у TimeEdit?


Kitty

Вопрос

Можно ли добиться от TimeEdit1->Time.TimeString() вывод в виде 20:00:00?

//Тест:
void __fastcall TMainForm::ButtonTimeFixClick(TObject *Sender)
{
 //настройки:
 //Format = hh:nn:ss
 //TimeFormatKind = Long
 //ListView1->Items->Item[ListView1->ItemIndex]->Text = 20:00:00
 TimeEdit1->Time = ListView1->Items->Item[ListView1->ItemIndex]->Text;//вижу 20:00:00 в компоненте TimeEdit1
 if(TimeEdit1->Time.TimeString() == ListView1->Items->Item[ListView1->ItemIndex]->Text)
 {
  //надо попасть сюда
  ShowMessage(L"Такое время уже есть в расписании.");
  TimeEdit1->SetFocus();
 }
//попадаю сюда 
ShowMessage(TimeEdit1->Time.TimeString() + " " + ListView1->Items->Item[ListView1->ItemIndex]->Text);
}

post-132-0-02031100-1406718213.jpg

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

Конвертации вида:

  1. TTime <-> String
  2. TDate <-> String
  3. TDateTime <-> String

являются базовыми операциями в RTL и не имеют отношения к компоненту TTimeEdit.

 

Чтобы время перевести в строку с требуемым форматом, нужно использовать метод FormatString:

TimeEdit1->Time.FormatString("hh:nn:ss");

По умолчанию все функции конвертации без параметров используют настройки формата из FormatSettings. Можете поменять стандартный формат в этой глобальной переменной, тогда все функции будут использовать ваш формат.

Ссылка на комментарий
  • 0
  • Администраторы

Такой вариант тоже возможен. Просто он является более длинной записью конвертации, чем использование встроенных хелперов в сам тип TDate.

 

P.S. А вообще лучше избегать сравнение времени через строковое представление. Так как вероятность ошибки при смене формата очень высок. Поэтому лучше хранить всегда дату в форматах TDateTime, TDate, TTime.

Изменено пользователем Brovin Yaroslav
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...