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, либо в строке но с глобальным форматом даты-времени.