1.3.2. Редакторы даты и времени (etDateTime, etDate, etTime)

1.3.2.1. Использование со строковым типом данных

При использовании редакторов etDateTime, etDate и etTime с полями строкового типа (ftString) дата и время хранятся в глобальном формате. При выводе значений в пользовательском интерфейсе они приводятся к локальному формату, чтобы их отображение соответствовало формату в котором по умолчанию отображаются значения в этих редакторах для полей с типом ftDate.

Для всех трёх редакторов в поле может быть записана строка, как содержащая дату и время полностью, так и только дату или только время. Что именно будет храниться в ячейке зависит от того откуда в неё были внесены данные. Если данные вносились через буфер обмена или TbtkScriptSelectionObject.SetVar, то в ячейках могут оказаться значения любого типа: только время, только дата, или дата и время вместе.

Changed in version 5.5ms7: Если значения вносятся из редактора, то дата и время всегда записываются полностью. При этом редактор даты будет сохранять в качестве нулевого времени 00:00:00, а редактор времени в качестве даты 30.12.1899 (см. Базовая дата Windows). В предыдущих версиях клиента, редакторы даты писали только дату, а редакторы времени только время.

Чтобы корректно работать со значениями полученными методом TbtkScriptSelectionObject.GetVar, из строковых полей в которых храниться дата, рекомендуется приводить их к типу TDateTime с помощью метода StrToDateTimeFmt, с указанием глобального формата. От использования методов StrToDateFmt и StrToTimeFmt лучше воздержаться, так-как в отличии от StrToDateTimeFmt они ожидают что в строке указано что-нибудь конкретное (время или дата). Чтобы гарантировать запись корректного значения даты-времени в строковое поле через TbtkScriptSelectionObject.SetVar следует передавать значение в типе TDateTime, либо в строке но с глобальным форматом даты-времени.