DateTimeToStr — Функция Delphi

DateTimeToStr — Функция Delphi

уЕТЧЕТ РПДДЕТЦЙЧБЕФУС
ЛБЖЕДТПК ЙОЖПТНБФЙЛЙ Й ЧЩЮЙУМЙФЕМШОПК ФЕИОЙЛЙ зТзх
ФЕМ. +375-(0)152-445-101
E-mail : kadan@grsu.grodno.by

уРТБЧПЮОЙЛ РП ЖХОЛГЙСН Delphi. тБВПФБ У ДБФБНЙ Й ЧТЕНЕОЕН

ч Delphi ДМС ИТБОЕОЙС ДБФ Щ Й (ЙМЙ) ЧТЕНЕОЙ РТЕДХУНПФТЕО ЖПТНБФ TDateTime, РТЕДУФБЧМСАЭЙК УПВПК, ОБ УБНПН ДЕМЕ, ПВЩЮОПЕ ЮЙУМП У РМБЧБАЭЕК ФПЮЛПК.

рТЙ ЬФПН ДБФБ РТЕДУФБЧМСЕФУС ГЕМПК ЮБУФША ЮЙУМБ, Б ЧТЕНС ? ДТПВОПК. рТЕЙНХЭЕУФЧП ЬФПЗП РПДИПДБ Ч ФПН, ЮФП ФЕРЕТШ ДБФЩ Й ЧТЕНЕОБ НПЦОП ЛПТТЕЛФОП УЛМБДЩЧБФШ Й ЧЩЮЙФБФШ, ОБРТЙНЕТ:

Справочник по компонентам Delphi. Часть 1
Страница 11. Функции работы с датами и временем

Функции работы с датами и временем

В Delphi для хранения дать! и (или) времени предусмотрен формат TDateTime, представляющий собой, на самом деле, обычное число с плавающей точкой.

При этом дата представляется целой частью числа, а время — дробной. Преимущество этого подхода в том, что теперь дать! и времена можно кор­ректно складывать и вычитать, например:

procedure TFormI.PormCreate(Sender: TObject);

Функции этой группы приведены в таблице:

function EncodeDate(Year, Month, Day: Word): TDateTime;

Преобразует дату, заданную раздельно годом, месяцем и днем, в формат TDateTime. Если они выходят за допустимые пределы, возникает ИС EConvertError.

procedure DecodeDatefDate: TDateTime; var Year, Month, Day: Word);

Преобразует дату в виде TDateTime к раздельным составляющим: году, месяцу и дню.

function EncodeTimefHour, Min, Sec, MSec: Word):

Преобразует значение времени, заданное часом, минутой, секундой и миллисекундой в формат TDateTime.

procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) ;

Преобразует значение времени в формате TDateTime в раздельные составляющие: час, минуту, секунду и миллисекунду.

function DayOfWeektDate: TDateTime): Integer;

Возвращает номер текущего дня недели от 1 (воскресенье) до 7 (суббота).

Возвращает текущую дату.

Возвращает текущее время.

Возвращает текущие дату и время.

function DateToStr(Date: TDateTime): string;

Преобразует дату Date в текстовую строку.

function TimeToStr(Time: TDateTime): string;

Преобразует время из типа TDateTime в текстовую строку.

function DateTimeToStr(DateTime: TDateTime): string;

Преобразует дату и время из типа TDateTime в текстовую строку.

function StrToDatefconst S: string): TDateTime;

Преобразует текстовую строку в дату типа TDateTime. Строка должна содержать два или три числа, разделенных символом, содержащимся в DateSeparator. Формат даты в строке определяется в соответствии со значением переменной ShortDateFormat.

function StrToTime(const S: string): TDateTime;

Преобразует текстовую строку S в значение времени. Должен использоваться формат HH:NN:SS, где SS — может принимать значения ‘AM’ или ТМ’, иначе означает секунды. Если необходимо получать время в 24-х часовой шкале, то элемент SS формата опус­кается. Если преобразование невозможно, возникает ИС EConvertError.

StrToDateTime(const S: string): TDateTime;

Преобразует текстовую строку S в дату и время в формате MM/DD/YY HH:NN:SS (элемент SS см. выше).

function FormatDateTime(const Format: string; DateTime: TdateTime): string;

Преобразует дату и время из типа TDateTime в тек­стовую строку, используя формат, задаваемый параметром Format (см. примеч. 1).

procedure DateTimeToStringfvar Result: string; const Format: string; DateTime: TDateTime);

Преобразует дату и время типа TDateTime в строку Result, используя формат, передаваемый параметром Format (см. примеч. 1).

1. Правила задания спецификатора формата для даты и времени отлича­ются от рассмотренных выше. В первую очередь надо иметь в виду то, что функции вроде FormatDateTime оперируют над одним значением TDateTime, а спецификаторы формата извлекают из него те или иные составные части. При этом могут использоваться:

Отображает дату, используя формат ShortDateFormat, затем отобра­жается время в формате LongTimeFormat. Время не отображается, если дробная часть переменной DateTime нулевая.

Отображает число месяца без нуля в левом разряде (1-31).

Отображает число месяца с нулем в левом разряде (01-31).

Отображает день недели в соответствии с сокращенными именами из переменной ShortDayNames.

Отображает день недели в соответствии с полными именами из переменной LongDayNames.

Отображает дату в соответствии с форматом ShortDateFormat.

Отображает дату в соответствии с форматом LongDateFormat.

Отображает месяц как число без нуля в левом разряде (1-12).

Отображает месяц как число с нулем в левом разряде (01-12).

Отображает месяц в соответствии с сокращенными именами из переменной ShortMonthNames.

Отображает месяц в соответствии с полными именами из переменной Long MonthN am es.

Отображает год двумя цифрами.

Отображает год четырьмя цифрами.

Отображает час как число без нуля в левом разряде (0-23).

Отображает час как число с нулем в левом разряде (00-23).

Отображает минуты как число без нуля в левом разряде (0-59).

Отображает минуты как число с нулем в левом разряде (00-59).

Отображает секунды как число без нуля в левом разряде (0-59).

Отображает секунды как число с нулем в левом разряде (00-59).

Отображает время в соответствии с форматом ShortTimeFormat.

Отображает время в соответствии с форматом LongTimeFormat.

Отображает время в 12-часовой шкале. ‘AM’ означает часы до полудня, ‘РМ’ — часы после полудня.

Отображает время в 12-часовой шкале. При этом для времени до полудня отображается содержимое переменной TimeAMString, а после полудня — TimePMString.

Отображает время в 12-часовой шкале, ‘а’ означает часы до полудня, ‘р’ — часы после полудня.

Отображает символ — разделитель даты, содержащийся в переменной DataSeparator.

Отображает символ — разделитель времени, содержащийся в переменной TimeSeparator.

Символы, заключаемые в простые или двойные кавычки, отображаются как есть и не подвергаются форматированию.

Например, результатом вызова функции с параметрами

FormatDateTime (‘ «Совещание состоится в» dddd, dirrmim, yyyy, ‘ + ‘ «в» hh:nn’, StrToDateTime(’12/31/95 23:55′)) ;

будет строка ‘Совещание состоится в среду, 31 декабря 1995 в 23:55’ (естес­твенно, если вы переопределили значения элементов массива LongMonth-Names).

3. Спецификаторы могут быть указаны как в верхнем, так и в нижнем регистрах символов — это не играет роли.

Клуб программистов

Delphi programming

Подписаться на рассылку:

DateTimeToString

огромные возможности форматирования даты в строку

|| 1 procedure DateTimeToString ( var Result : string; const Formatting : string; DateTime : TDateTime ) ;

|| 2 procedure DateTimeToString ( var Result : string; const Formatting : string; DateTime : TDateTime; const FormatSettings : TFormatSettings ) ;

Описание:

Delphi процедура DateTimeToString позволяет форматировать дату и время, и в нужном формате даты и времени DateTime ( тип TDateTime ) переводить в строку. Т.е Delphi процедура DateTimeToString позволяет форматировать и время и дату.

Форматирование строки может включать смешивание обычных символов ( дата будет переведена в строку именно так, как укажет пользователь). Пример форматирования хорошо представлен в «Пример кода».

Следующее (не-Азиатское) символы формата даты могут быть использованы:

y = Year last 2 digits
yy = Year last 2 digits
yyyy = Year as 4 digits
m = Month number no-leading 0
mm = Month number as 2 digits
mmm = Month using ShortDayNames (Jan)
mmmm = Month using LongDayNames (January)
d = Day number no-leading 0
dd = Day number as 2 digits
ddd = Day using ShortDayNames (Sun)
dddd = Day using LongDayNames (Sunday)
ddddd = Day in ShortDateFormat
dddddd = Day in LongDateFormat

c = Use ShortDateFormat + LongTimeFormat
h = Hour number no-leading 0
hh = Hour number as 2 digits
n = Minute number no-leading 0
nn = Minute number as 2 digits
s = Second number no-leading 0
ss = Second number as 2 digits
z = Milli-sec number no-leading 0s
zzz = Milli-sec number as 3 digits
t = Use ShortTimeFormat
tt = Use LongTimeFormat

am/pm = Use after h : gives 12 hours + am/pm
a/p = Use after h : gives 12 hours + a/p
ampm = As a/p but TimeAMString,TimePMString
/ = Substituted by DateSeparator value
: = Substituted by TimeSeparator value

Значения использующиеся по умолчанию.

DateSeparator = /
TimeSeparator = :
ShortDateFormat = dd/mm/yyyy
LongDateFormat = dd mmm yyyy
TimeAMString = AM
TimePMString = PM
ShortTimeFormat = hh:mm
LongTimeFormat = hh:mm:ss
ShortMonthNames = Jan Feb .
LongMonthNames = January, February .
ShortDayNames = Sun, Mon .
LongDayNames = Sunday, Monday .
TwoDigitCenturyWindow = 50

Пример кода:

var
myDate : TDateTime;
formattedDateTime : string;

begin
// Set up our TDateTime variable with a full date and time :
// 09/02/2000 at 01:02:03.004 (.004 milli-seconds)
myDate := EncodeDateTime(2000, 2, 9, 1, 2, 3, 4);

// Date only — numeric values with no leading zeroes (except year)
DateTimeToString(formattedDateTime, ‘d/m/y’, myDate);
ShowMessage(‘ d/m/y = ‘+formattedDateTime);

Илон Маск рекомендует:  Что такое код getmodulehandle

// Date only — numeric values with leading zeroes
DateTimeToString(formattedDateTime, ‘dd/mm/yy’, myDate);
ShowMessage(‘ dd/mm/yy = ‘+formattedDateTime);

// Use short names for the day, month, and add freeform text (‘of’)
DateTimeToString(formattedDateTime, ‘ddd d of mmm yyyy’, myDate);
ShowMessage(‘ ddd d of mmm yyyy = ‘+formattedDateTime);

// Use long names for the day and month
DateTimeToString(formattedDateTime, ‘dddd d of mmmm yyyy’, myDate);
ShowMessage(‘dddd d of mmmm yyyy = ‘+formattedDateTime);

// Use the ShortDateFormat settings only
DateTimeToString(formattedDateTime, ‘ddddd’, myDate);
ShowMessage(‘ ddddd = ‘+formattedDateTime);

// Use the LongDateFormat settings only
DateTimeToString(formattedDateTime, ‘dddddd’, myDate);
ShowMessage(‘ dddddd = ‘+formattedDateTime);

// Use the ShortDateFormat + LongTimeFormat settings
DateTimeToString(formattedDateTime, ‘c’, myDate);
ShowMessage(‘ c = ‘+formattedDateTime);
end;

Результат выполнения:


Пример кода:

var
myDate : TDateTime;
formattedDateTime : string;

begin
// Set up our TDateTime variable with a full date and time :
// 09/02/2000 at 01:02:03.004 (.004 milli-seconds)
myDate := EncodeDateTime(2000, 2, 9, 1, 2, 3, 4);

// Time only — numeric values with no leading zeroes
DateTimeToString(formattedDateTime, ‘h:m:s.z’, myDate);
ShowMessage(‘ h:m:s.z = ‘+formattedDateTime);

// Time only — numeric values with leading zeroes
DateTimeToString(formattedDateTime, ‘hh:mm:ss.zzz’, myDate);
ShowMessage(‘hh:mm:ss.zzz = ‘+formattedDateTime);

// Use the ShortTimeFormat settings only
DateTimeToString(formattedDateTime, ‘t’, myDate);
ShowMessage(‘ t = ‘+formattedDateTime);

// Use the LongTimeFormat settings only
DateTimeToString(formattedDateTime, ‘tt’, myDate);
ShowMessage(‘ tt = ‘+formattedDateTime);

// Use the ShortDateFormat + LongTimeFormat settings
DateTimeToString(formattedDateTime, ‘c’, myDate);
ShowMessage(‘ c = ‘+formattedDateTime);
end;

Результат выполнения:

h:m:s.z = 1:2:3.4
hh:mm:ss.zzz = 01:02:03.004
t = 01:02
tt = 01:02:03
c = 09/02/2000 01:02:03

Пример кода:

var
myDate : TDateTime;
formattedDateTime : string;

begin
// Set up our TDateTime variable with a full date and time
myDate := StrToDateTime(’09/02/49 01:02:03.004′);

// Demonstrate default locale settings

// Use the DateSeparator and TimeSeparator values
DateTimeToString(formattedDateTime, ‘dd/mm/yy hh:mm:ss’, myDate);
ShowMessage(‘dd/mm/yy hh:mm:ss = ‘+formattedDateTime);

// Use ShortMonthNames
DateTimeToString(formattedDateTime, ‘mmm’, myDate);
ShowMessage(‘ mmm = ‘+formattedDateTime);

// Use LongMonthNames
DateTimeToString(formattedDateTime, ‘mmmm’, myDate);
ShowMessage(‘ mmmm = ‘+formattedDateTime);

// Use ShortDayNames
DateTimeToString(formattedDateTime, ‘ddd’, myDate);
ShowMessage(‘ ddd = ‘+formattedDateTime);

// Use LongDayNames
DateTimeToString(formattedDateTime, ‘dddd’, myDate);
ShowMessage(‘ dddd = ‘+formattedDateTime);

// Use the ShortDateFormat string
DateTimeToString(formattedDateTime, ‘ddddd’, myDate);
ShowMessage(‘ ddddd = ‘+formattedDateTime);

// Use the LongDateFormat string
DateTimeToString(formattedDateTime, ‘dddddd’, myDate);
ShowMessage(‘ dddddd = ‘+formattedDateTime);

// Use the TimeAmString
DateTimeToString(formattedDateTime, ‘hhampm’, myDate);
ShowMessage(‘ hhampm = ‘+formattedDateTime);

// Use the ShortTimeFormat string
DateTimeToString(formattedDateTime, ‘t’, myDate);
ShowMessage(‘ t = ‘+formattedDateTime);

// Use the LongTimeFormat string
DateTimeToString(formattedDateTime, ‘tt’, myDate);
ShowMessage(‘ tt = ‘+formattedDateTime);
// Use the TwoDigitCenturyWindow
DateTimeToString(formattedDateTime, ‘dd/mm/yyyy’, myDate);
ShowMessage(‘ dd/mm/yyyy = ‘+formattedDateTime);

// Now change the defaults
DateSeparator := ‘-‘;
TimeSeparator := ‘_’;
ShortDateFormat := ‘dd/mmm/yy’;
LongDateFormat := ‘dddd dd of mmmm of yyyy’;
TimeAMString := ‘morning’;
TimePMString := ‘afternoon’;
ShortTimeFormat := ‘hh:mm:ss’;
LongTimeFormat := ‘hh : mm : ss . zzz’;
ShortMonthNames[2] := ‘FEB’;
LongMonthNames[2] := ‘FEBRUARY’;
ShortDayNames[4] := ‘WED’;
LongDayNames[4] := ‘WEDNESDAY’;
TwoDigitYearCenturyWindow := 75;

// Set up our TDateTime variable with the same value as before
// except that we must use the new date and time separators
// The TwoDigitYearCenturyWindow variable only takes effect here
myDate := StrToDateTime(’09-02-49 01_02_03.004′);

// Use the DateSeparator and TimeSeparator values
DateTimeToString(formattedDateTime, ‘dd/mm/yy hh:mm:ss’, myDate);
ShowMessage(‘dd/mm/yy hh:mm:ss = ‘+formattedDateTime);

// Use ShortMonthNames
DateTimeToString(formattedDateTime, ‘mmm’, myDate);
ShowMessage(‘ mmm = ‘+formattedDateTime);

// Use LongMonthNames
DateTimeToString(formattedDateTime, ‘mmmm’, myDate);
ShowMessage(‘ mmmm = ‘+formattedDateTime);

// Use ShortDayNames
DateTimeToString(formattedDateTime, ‘ddd’, myDate);
ShowMessage(‘ ddd = ‘+formattedDateTime);

// Use LongDayNames
DateTimeToString(formattedDateTime, ‘dddd’, myDate);
ShowMessage(‘ dddd = ‘+formattedDateTime);

// Use the ShortDateFormat string
DateTimeToString(formattedDateTime, ‘ddddd’, myDate);
ShowMessage(‘ ddddd = ‘+formattedDateTime);

// Use the LongDateFormat string
DateTimeToString(formattedDateTime, ‘dddddd’, myDate);
ShowMessage(‘ dddddd = ‘+formattedDateTime);

// Use the TimeAmString
DateTimeToString(formattedDateTime, ‘hhampm’, myDate);
ShowMessage(‘ hhampm = ‘+formattedDateTime);

// Use the ShortTimeFormat string
DateTimeToString(formattedDateTime, ‘t’, myDate);
ShowMessage(‘ t = ‘+formattedDateTime);

// Use the LongTimeFormat string
DateTimeToString(formattedDateTime, ‘tt’, myDate);
ShowMessage(‘ tt = ‘+formattedDateTime);

// Use the TwoDigitCenturyWindow
DateTimeToString(formattedDateTime, ‘dd/mm/yyyy’, myDate);
ShowMessage(‘ dd/mm/yyyy = ‘+formattedDateTime);
end;

Результат выполнения:

dd/mm/yy hh:mm:ss = 09/02/49 01:02:03
mmm = Feb
mmmm = February
ddd = Tue
dddd = Tuesday
ddddd = 09/02/2049
dddddd = 09 February 2049
hhampm = 01AM
t = 01:02
tt = 01:02:03
dd/mm/yyyy = 09/02/2049

dd/mm/yy hh:mm:ss = 09-02-49 01_02_03
mmm = FEB
mmmm = FEBRUARY
ddd = WED
dddd = WEDNESDAY
ddddd = 09-FEB-49
dddddd = WEDNESDAY 09 of FEBRUARY of 1949
hhampm = 01morning
t = 01_02_03
tt = 01 _ 02 _ 03 . 004
dd/mm/yyyy = 09-02-1949

Как правильно работать с датой и временем

26.06.2012, 10:59

Работа с Датой и Временем
Всем привет, помогите решить задачи с датой и временем, ни когда не с сталкивался еще с этим и не.

Работа с датой и временем
ребят. к примеру есть у меня переменная типа дата-время: str:=’12.03.2011 12:23:54′;.

Работа с датой и временем(калькулятор)
Задание: Организовать проект «Калькулятор времени». Вывести на экран текущую дату, а также время(в.

Работа с Датой и Временем. Delphi 7
Подскажите пожалуйста! В ячейке таблицы есть поле со временем длительности. В нем могут.

Сохранение файла с датой и временем в названии
Нужно сохранить текст из Memo1 в текстовый документ, имя которого будет дата и время сохранения .

26.06.2012, 14:05 2

Решение

26.06.2012, 15:51 [ТС] 3

то что вы предлагаете, это неудобно, там нужно складывать часы, дни, месяцы, учитывать сколько дней в месяце ,месяцев в году и тд. а в unixtime достаточно сложить два числа и все.Для тех кто в танке: unix time это кол-во секунд прошедших с 01.01.1970, в дельфе есть аналог, но там только кл-во дней прошедших с 1900 года.а мне нужны месяца, дни, часы,минуты, секунды

Нашел, вот ф-ия преобразующая unixtime и TDateTime в обе стороны

26.06.2012, 15:51

Сделать так, чтобы папка сохранялась с датой и временем в названии
Помогите! не могу понять как в Delphi7 сделать так чтоб папка создавалась с названием даты и время.

Как правильно работать с таблицами Word
Здравствуйте, помогите решить проблему. Строка после таблицы помещается в ее первую ячейку. Как.

Как работать в Perl с датой и временем?
как работать в Perl с датой и временем которые я получаю из MySql, например: как получить.

DateTimeToStr — Функция Delphi

При задании значения даты-времени следует обратить внимание не только на сами значения, но и на знаки препинания. Несущественные части даты-времеи (например, секунды, минуты, часы) можно справа отбросить. В этом случае считается, что соответствующая часть равна нулю. Если в дате-времени отброшено еще и значение года, считается, что имеется в виду текущий год. Обычно тип дата-время используется в параметрах вариантного типа как один из допустимых вариантов, но может использоваться и самостоятельно для фиксации информации о времени.

Примечание. Следует иметь в виду, что при записи года двумя последними цифрами фактический год зависит от текущего года и глобальной переменной заданной в Delphi — TwoDigitYearCenturyWindow. По умолчанию эта переменная имеет значение, равное 50, что означает, что в конце этого столетия и начале следующего задаваемые двумя цифрами годы будут относиться к XX в., если число несколько больше 50, и к XXI в., если число несколько меньше 50.

В модуле SysUtils определен ряд стандартных функции работы с параметрами типа даты-времени.

  • Time — текущее время. Функция возвращает текущее значение времени в формате TTime.
  • Date — текущая дата. Функция возвращает текущее значение даты в формате TDate.
  • Now — текущая дата и время. Функция возвращает текущее значение даты и времени в формате TDateTime.
  • DateTimeToStr (DateTime) — символьное представление даты и времени. Функция формирует для параметра DateTime типа TDateTime символьное представление даты и времени с учетом региональной установки Windows и возвращает полученную строку в качестве результата своей работы.
  • DateTimeToString (Result, Format, DateTime) — сформатированное символьное представление даты и времени. Процедура формирует символьное представление параметра DateTime типа TDateTime с учетом формата, заданного строкой Format, и помещает результат в строку Result.
  • DateToStr (Date) — символьное представление даты. Функция формирует для параметра Date типа TDateTime или TDate символьное представление даты с учетом региональной установки Windows и возвращает полученную строку в качестве результата своей работы.
  • DayOfWeek (Date) — день недели. Функция возвращает день недели заданной даты Date типа TDateTime или TDate в виде числа от 1 до 7, причем нумерация начинается с воскресенья.
  • TimeToStr (Time) — символьное представление времени. Функция формирует для параметра Time типа TDateTime или TTime символьное представление времени с учетом региональной установки Windows и возвращает полученную строку в качестве результата своей работы.
  • DecodeDate (Date, Year, Month, Day) — выделение в дате года, месяца, дня. Процедура выделяет из параметра Date типа TDateTime или TDate год, месяц, день и помещает их соответственно в параметры Year, Month и Day типа Word.
  • DecodeTime (Date, Hour, Min, Sec, MSec) — выделение во времени часа, минуты, секунды и числа миллисекунд. Процедура выделяет из параметра Date типа TDateTime или TTime час, минуту, секунду и число миллисекунд и помещает их соответственно в параметры Hour, Min, Sec и MSec типа Word.
  • EncodeDate (Year, Month, Day) — формирование даты из компонент. Функция формирует из заданного года, месяца и дня (заданных в параметрах Year, Month, Day) комплексный параметр типа TDateTime и возвращает его как результат работы.
  • EncodeTime (Hour, Min, Sec, MSec) — формирование времени из компонент. Функция формирует из заданных часа, минуты, секунды и числа миллисекунд (заданных в параметрах Hour, Min, Sec, MSec) комплексный параметр типа TDateTime и возвращает его как результат работы.
  • FormatDateTime (Format, DateTime) — сформатированное символьное представление даты и времени. Функция формирует символьное представление параметра DateTime типа TDateTime с учетом формата, заданного строкой Format, и возвращает полученную строку как результат своей работы.
  • StrToDate (S) — преобразование символьного представления даты в тип TDateTime. Функция преобразовывает символьное представление даты, находящееся в строке S, в формат TDateTime или TDate и возвращает полученную величину как результат своей работы. Дата должна быть задана в соответствии с региональной установкой Windows.
  • StrToTime (S) — преобразование символьного представления времени в тип TDateTime. Функция преобразовывает символьное представление времени, находящееся в строке S, в формат TDateTime или TTime и возвращает полученную величину как результат своей работы. Время должно быть задано в соответствии с региональной установкой Windows.
  • StrToDateTime (S) — преобразование символьного представления даты и времени в тип TDateTime. Функция преобразовывает символьное представление даты и времени, находящееся в строке S, в формат TDateTime и возвращает полученную величину как результат своей работы. Дата и время должны быть заданы в соответствии с региональной установкой Windows.

Тепеть разберем некоторые функции на примерах.

DateTimeToString

DateTimeToStr

DateToStr

TimeToStr

А сейчас попробуем написать часы, применяя описанные выше процедуры и функции. С созданием цифровых часов не должно возникнуть никаких проблем, а вот с аналоговыми нужно повозиться. Но мы, как настоящие программисты, не боимся трудностей, и возьмемся за реализацию этой задачи. И первое, что мы сделаем при запуске программы, узнаем координаты центра часов и вычислим радиус.

Обновлять информацию о времени будем, используя таймер, и сделаем возможность запуска/остановки часов. Запускать и останавливать таймер будем следующей процедурой.

Таймер, через определенные интервалы времени, будет получать информацию о дате и времени, выводить ее, и вызывать процедуру рисования аналоговых часов.

А вот и сама процедура рисования аналоговых часов.

Из примера видно, что сделать часы, в том числе и аналоговые, не представляет из себя ничего сложного. Я думаю, не возникнет больших проблем при разборе данного примера.

Процедуры и функции преобразования дат и времени

CurrentYear: Word;

Возвращает полное обозначение (четыре цифры) текущего года.

Date : TDateTime

Возвращает текущую дату.

DateOf(const AValue: TDateTime): TDateTime

Выделяет из AValue только часть, связанную датой, обнуляя время.

DateTimeToFileDate(DateTime: TDateTime): Integer

Преобразует дату и время TDateTime в формат операционной системы, ис­пользуемый при задании времени создания и модификации файлов.

DateTimeToSQLTimeStamp(const DateTime: TDateTime): TSQLTimeStamp

Преобразует дату и время TDateTime в формат TSQLTimeStamp .

DateTimeToStr (DateTime: TDateTime): string

Преобразует дату и время DateTime в строку.

DateTimeToString fvar Result: string; const Format: string;

DateTime: TDateTime)

Преобразует DateTime с помощью строки форматирования Format в стро­ку Result.

DateTimeToSystemTime(DateTime: TDateTime;

var SystemTime: TSystemTime)

Преобразует DateTime типа TDateTime в тип TSystemTime . Используемый в API Windows 32.

DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp Преобразует DateTime типа TDateTime в тип TTimeStamp .

DateToStr(Date: TDateTime): string

Преобразует дату DateTime в строку, используя формат, заданный гло­бальной переменной ShortDateFormat.

DayOf f(const AValue: TDateTime): Word

Извлекает день месяца из даты AValue типа TDateTime. Идентична функ ции DavOfTheMonth.

DayOfTheMonth f(const AValue: TDateTime): Word

Извлекает день месяца из даты AValue типа TDateTime. Идентична функ­ции DayOf .

DayOfTheWeek(const AValue: TDateTime): Word

Возвращает день недели (1 — понедельник, 7 — воскресенье).

DayOfTheYear(const AValue: TDateTime): Word;

Возвращает число дней между датой AValue и 31 декабря предыдущего года.

DayOfWeek (Date: TDateTime): Integer

Возвращает день неде ли (1 — воскресенье, 7 — суббота).

DaysBetween f(const ANow, AThen: TDateTime): Integer

Возвращает число полных суток между двумя указанными датами ANow и AThen типа TDateTime.

DaysInAMonth(const AYear, AMonth: Word): Word

Возвращает число дней в указанном месяце AMonth в указанном году AYear.

DaysInYear(const AValue: TDateTime): Word

Возвращает число дней в году, к которому относится указанная дата AValue.

DaySpan (const ANow, AThen: TDateTime): Double

Возвращает действительное число, равное числу суток между двумя ука­занными датами ANow и AThen типа TDateTime, учитывая неполные су­тки. В этом отличие данной функции от DaysBetween.

DecodeDate (Date: TDateTime; var Year, Month, Day: Word)

Разбивает дату Date на год — Year, месяц — Month и день — Day.

DecodeDateDay(const AValue: TDateTime; out AYear, ADayOfYear: Word)

Возвращает год AYear, к которому относится дата AValue, и число дней ADayOfYear в этом году.

DecodeDateFully(const DateTime: TDateTime; var Year, Month, Day,

DOW: Word): Boolean

Выделяет из даты DateTime год Year, месяц Month, день Day, день недели DOW. Если год високосный, возвращается true.

DecodeDateMonthWeek(const AValue: TDateTime;

out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word)

Возвращает год AYear, месяц AMonth, неделю месяца AWeekOfMonth, день недели ADayOfWeek (1 — понедельник) даты AValue.

DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay,

AHour, AMinute, ASecond, AMilliSecond: Word)

Возвращает год AYear, месяц AMonth, день ADay, час AHour, минуту AMinute, секунду ASecond, число миллисекунд AMilliSecond указанной даты и времени AValue.

DecodeDateWeek(const AValue: TDateTime;

out AYear, AWeekOfYear, ADayOfWeek: Word)

Возвращает год AYear, неделю года AWeekOfYear и день недели ADayOfWeek (1 — понедельник) указанной даты AValue.

DecodeDayOfWeekInMonth(const AValue: TDateTime;

out AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word)

Возвращает год AYear, месяц AMonth, который раз ANthDayOfWeek встречается в месяце данный день недели, день недели ADayOfWeek (1 — понедельник).

DecodeTime (Time: TDateTime; var Hour, Min, Sec, MSec: Word)

Разбивает время Time на час — Hour, минуту — Min, секунду — Sec, миллисекунду — MSec.

EncodeDate fYear. Month, Day: Word): TDateTime

Объединяет год Year, месяц Month и день Day в значение типа TDateTime.

EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime

Формирует значение TDateTime по заданному году AYear и дню года ADayOfYear .

EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth: Word;

const ADayOfWeek: Word = 1): TDateTime

Формирует значение TDateTime по заданному году AYear, месяцу AMonth, неделе месяца AWeekOfMonth и дню недели ADayOfWeek.

EncodeDateTime(const AYear, AMonth, ADay, AHour,

AMinute, ASecond, AMilliSecond: Word):TDateTime

Формирует значение TDateTime по заданному году AYear, месяцу AMonth, дню ADay, часу AHour, минуте AMinute, секунде ASecond, мил­лисекунде AMilliSecond.

EncodeDateWeek(const, AWeekOfYear: Word;

const ADayOfWeek: Word =1): TDateTime

Формирует значение TDateTime по заданному году AYear и указанному дню ADayOfWeek указанной недели AWeekOfYear.

EncodeDayOfWeekInMonth(const AYear, AMonth,

ANthDayOfWeek, ADayOfWeek: Word): TDateTime

Формирует значение TDateTime по заданному году AYear, месяцу AMonth, дню недели ADayOfWeek и тому, который раз ANthDayOfWeek

этот день встречается в данном месяце.

EncodcTime (Hour. Min, Sec, MSec: Word): TDateTime

Объединяет час Hour, минуту Min, секунду Sec и миллисекунду MSec

в значение типа TDateTime.

EndOfADay(const AYear, ADayOfYear: Word): TDateTime

Возвращает время окончания указанного дня ADayOfYear указанного года AYear.

EndOfADay(const AYear, AMonth, ADay: Word): TDateTime

Возвращает время окончания указанного дня ADay указанного месяца AMonth указанного года AYear.

EndOfAMonth(const AYear, AMonth: Word): TDateTime

Возвращает время окончания последнего дня указанного месяца AMonth указанного года AYear.

EndOfAWeek(const AYear, AWeekOfYear: Word;

const ADayOfWeek: Word = 7): TDateTime

Возвращает время окончания указанного дня ADayOfWeek указанной не­дели AWeekOfYear указанного года AYear.

EndOfAYear(const AYear): TDateTime

Возвращает время окончания указанного года AYear.

EndOfTheDay(const AValue: TDateTime): TDateTime

Возвращает время окончания указанной даты AValue.

EndOfTheMonth(const AValue: TDateTime): TDateTime

Возвращает время окончания месяца, содержащего указанную дату AValue.

EndOfTheWeek(const AValue: TDateTime): TDateTime

Возвращает время окончания недели, содержащей указанную дату

AValue. EndOfTheYear(const AValue: TDateTime): TDateTime

Возвращает время окончания года, содержащего указанную дату

AValue. FormatDateTime (const Format: string; DateTime: TDateTime): string

Возвращает значение DateTime, преобразованное в строку с помощью стро­ки форматирования Format.

. delphi отображать текущую дату delphi функции даты функция даты и времени паскаль c# преобразовать дату delphi дата и время

Delphi: DateTimeToStr output with zero time (m > Ask Question

I have found a similar question here, but it is unrelated to what I am trying to do. I have done a lot of research on the Internet and I have determined that Delphi is working as designed or intended, where it omits the time if the time is zero. I have an application which displays the date & time in a listview, and when the time is midnight, it doesn’t show 00:00:00, and therefore making the results look uneven and out of place.

The way I’ve gotten around this which is still locale independant is to add a microsecond to the time, see sample code:

And subsequent output:

The question is — is there a better, more programatically correct way to do achieve this?

DateTimeToStr Routine

Unit Edit

Description Edit

Definition (Delphi 6):

Definition (Delphi 2007, 2010):

Technical Comments Edit

(Known issues / Documentation clarifications / Things to be aware of)

Examples Edit

(Please provide links to articles/source code that show how to use this item.)

See Also Edit

(Please provide links to items specifically related to this item.)

User Comments/Tips Edit

(Please leave your name with your comment.)

Процедуры и функции преобразования дат и времени

CurrentYear: Word;

Возвращает полное обозначение (четыре цифры) текущего года.

Date : TDateTime

Возвращает текущую дату.

DateOf(const AValue: TDateTime): TDateTime

Выделяет из AValue только часть, связанную датой, обнуляя время.

DateTimeToFileDate(DateTime: TDateTime): Integer

Преобразует дату и время TDateTime в формат операционной системы, ис­пользуемый при задании времени создания и модификации файлов.

DateTimeToSQLTimeStamp(const DateTime: TDateTime): TSQLTimeStamp

Преобразует дату и время TDateTime в формат TSQLTimeStamp .

DateTimeToStr (DateTime: TDateTime): string

Преобразует дату и время DateTime в строку.

DateTimeToString fvar Result: string; const Format: string;

DateTime: TDateTime)

Преобразует DateTime с помощью строки форматирования Format в стро­ку Result.

DateTimeToSystemTime(DateTime: TDateTime;

var SystemTime: TSystemTime)

Преобразует DateTime типа TDateTime в тип TSystemTime . Используемый в API Windows 32.

DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp Преобразует DateTime типа TDateTime в тип TTimeStamp .

DateToStr(Date: TDateTime): string

Преобразует дату DateTime в строку, используя формат, заданный гло­бальной переменной ShortDateFormat.

DayOf f(const AValue: TDateTime): Word

Извлекает день месяца из даты AValue типа TDateTime. Идентична функ ции DavOfTheMonth.

DayOfTheMonth f(const AValue: TDateTime): Word

Извлекает день месяца из даты AValue типа TDateTime. Идентична функ­ции DayOf .

DayOfTheWeek(const AValue: TDateTime): Word

Возвращает день недели (1 — понедельник, 7 — воскресенье).

DayOfTheYear(const AValue: TDateTime): Word;

Возвращает число дней между датой AValue и 31 декабря предыдущего года.

DayOfWeek (Date: TDateTime): Integer

Возвращает день неде ли (1 — воскресенье, 7 — суббота).

DaysBetween f(const ANow, AThen: TDateTime): Integer

Возвращает число полных суток между двумя указанными датами ANow и AThen типа TDateTime.

DaysInAMonth(const AYear, AMonth: Word): Word

Возвращает число дней в указанном месяце AMonth в указанном году AYear.

DaysInYear(const AValue: TDateTime): Word

Возвращает число дней в году, к которому относится указанная дата AValue.

DaySpan (const ANow, AThen: TDateTime): Double

Возвращает действительное число, равное числу суток между двумя ука­занными датами ANow и AThen типа TDateTime, учитывая неполные су­тки. В этом отличие данной функции от DaysBetween.

DecodeDate (Date: TDateTime; var Year, Month, Day: Word)

Разбивает дату Date на год — Year, месяц — Month и день — Day.

DecodeDateDay(const AValue: TDateTime; out AYear, ADayOfYear: Word)

Возвращает год AYear, к которому относится дата AValue, и число дней ADayOfYear в этом году.

DecodeDateFully(const DateTime: TDateTime; var Year, Month, Day,

DOW: Word): Boolean

Выделяет из даты DateTime год Year, месяц Month, день Day, день недели DOW. Если год високосный, возвращается true.

DecodeDateMonthWeek(const AValue: TDateTime;

out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word)

Возвращает год AYear, месяц AMonth, неделю месяца AWeekOfMonth, день недели ADayOfWeek (1 — понедельник) даты AValue.

DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay,

AHour, AMinute, ASecond, AMilliSecond: Word)

Возвращает год AYear, месяц AMonth, день ADay, час AHour, минуту AMinute, секунду ASecond, число миллисекунд AMilliSecond указанной даты и времени AValue.

DecodeDateWeek(const AValue: TDateTime;

out AYear, AWeekOfYear, ADayOfWeek: Word)

Возвращает год AYear, неделю года AWeekOfYear и день недели ADayOfWeek (1 — понедельник) указанной даты AValue.

DecodeDayOfWeekInMonth(const AValue: TDateTime;

out AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word)

Возвращает год AYear, месяц AMonth, который раз ANthDayOfWeek встречается в месяце данный день недели, день недели ADayOfWeek (1 — понедельник).

DecodeTime (Time: TDateTime; var Hour, Min, Sec, MSec: Word)

Разбивает время Time на час — Hour, минуту — Min, секунду — Sec, миллисекунду — MSec.

EncodeDate fYear. Month, Day: Word): TDateTime

Объединяет год Year, месяц Month и день Day в значение типа TDateTime.

EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime

Формирует значение TDateTime по заданному году AYear и дню года ADayOfYear .

EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth: Word;

const ADayOfWeek: Word = 1): TDateTime

Формирует значение TDateTime по заданному году AYear, месяцу AMonth, неделе месяца AWeekOfMonth и дню недели ADayOfWeek.

EncodeDateTime(const AYear, AMonth, ADay, AHour,

AMinute, ASecond, AMilliSecond: Word):TDateTime

Формирует значение TDateTime по заданному году AYear, месяцу AMonth, дню ADay, часу AHour, минуте AMinute, секунде ASecond, мил­лисекунде AMilliSecond.

EncodeDateWeek(const, AWeekOfYear: Word;

const ADayOfWeek: Word =1): TDateTime

Формирует значение TDateTime по заданному году AYear и указанному дню ADayOfWeek указанной недели AWeekOfYear.

EncodeDayOfWeekInMonth(const AYear, AMonth,

ANthDayOfWeek, ADayOfWeek: Word): TDateTime

Формирует значение TDateTime по заданному году AYear, месяцу AMonth, дню недели ADayOfWeek и тому, который раз ANthDayOfWeek

этот день встречается в данном месяце.

EncodcTime (Hour. Min, Sec, MSec: Word): TDateTime

Объединяет час Hour, минуту Min, секунду Sec и миллисекунду MSec

в значение типа TDateTime.

EndOfADay(const AYear, ADayOfYear: Word): TDateTime

Возвращает время окончания указанного дня ADayOfYear указанного года AYear.

EndOfADay(const AYear, AMonth, ADay: Word): TDateTime

Возвращает время окончания указанного дня ADay указанного месяца AMonth указанного года AYear.

EndOfAMonth(const AYear, AMonth: Word): TDateTime

Возвращает время окончания последнего дня указанного месяца AMonth указанного года AYear.

EndOfAWeek(const AYear, AWeekOfYear: Word;

const ADayOfWeek: Word = 7): TDateTime

Возвращает время окончания указанного дня ADayOfWeek указанной не­дели AWeekOfYear указанного года AYear.

EndOfAYear(const AYear): TDateTime

Возвращает время окончания указанного года AYear.

EndOfTheDay(const AValue: TDateTime): TDateTime

Возвращает время окончания указанной даты AValue.

EndOfTheMonth(const AValue: TDateTime): TDateTime

Возвращает время окончания месяца, содержащего указанную дату AValue.

EndOfTheWeek(const AValue: TDateTime): TDateTime

Возвращает время окончания недели, содержащей указанную дату

AValue. EndOfTheYear(const AValue: TDateTime): TDateTime

Возвращает время окончания года, содержащего указанную дату

AValue. FormatDateTime (const Format: string; DateTime: TDateTime): string

Возвращает значение DateTime, преобразованное в строку с помощью стро­ки форматирования Format.

. delphi отображать текущую дату delphi функции даты функция даты и времени паскаль c# преобразовать дату delphi дата и время

delphi — Delphi: выход DateTimeToStr с нулевым временем (полночь)

Я нашел аналогичный вопрос здесь, но это не имеет никакого отношения к тому, что я пытаюсь сделать. Я провел много исследований в Интернете, и я решил, что Delphi работает как спроектированный или предназначенный, где он пропускает время, если время равно нулю. У меня есть приложение, которое отображает дату и время в списке, а когда время полночь, оно не показывает 00:00:00, и поэтому результаты выглядят неравномерно и неуместно.

То, как я обошел это, которое по-прежнему не зависит от локали, состоит в том, чтобы добавить микросекунду к моменту времени, см. Пример кода:

И последующий вывод:

Вопрос в том, есть ли лучший, более программно правильный способ добиться этого?

Запуск Delphi XE6

    4 2
  • 26 апр 2020 2020-04-26 01:05:51
  • KeyszerS

2 ответа

Это «нормальное» поведение VCL. Посмотрите на связанный код System.SysUtils (это из Сиэтла, но я думаю, что он не сильно изменился с XE6).

Если временная часть значения datetime равна нулю, то в результирующей строке будет только дата.

Если вы хотите всегда показывать дату и время в одном формате, лучше используйте FormatDateTime как предложено другими ответами.

  • 26 апр 2020 2020-04-26 01:05:52
  • Andrew

Вы можете использовать функцию FormatDateTime для большего контроля за форматированием даты.

Илон Маск рекомендует:  IncMonth - Функция Delphi
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL