Bazaprogram.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Delphi datetime to string

Delphi datetime to string

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

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

y = Год с 2-мя последними цифрами
yy = Год с 2-мя последними цифрами
yyyy = Год как 4 цифры
m = Номер месяца без 0
mm = Номер месяца как 2 цифры
mmm = Месяц с использованием ShortDayNames (Янв)
mmmm = Месяц с использованием LongDayNames (Январь)
d = Число без 0
dd = Число как 2 цифры
ddd = День с использованием ShortDayNames (Воск)
dddd = День с использованием LongDayNames (Воскресенье)
ddddd = День с использованием ShortDateFormat
dddddd = День с использованием LongDateFormat

c = Используется ShortDateFormat + LongTimeFormat
h = Час без 0
hh = Час без 0
n = Минуты без 0
nn = Минуты как 2 цифры
s = Секунды без 0
ss = Секунды как 2 цифры
z = Миллисекунды без 0
zzz = Миллисекунды как 3 цифры
t = Исполльзуется ShortTimeFormat
tt = Исполльзуется LongTimeFormat

am/pm = Используется после h : возвращает 12 часов + am/pm
a/p = Используется после h : возвращает 12 часов + a/p
ampm = Как a/p но с TimeAMString,TimePMString
/ = Замененный значением DateSeparator
: = Замененный значением TimeSeparator

В дополнение к этому форматированию, различные из вышеупомянутых вариантов затрагиваются следующими переменными, использующими их как значения по умолчанию:

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

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

DateSeparator Символ используемый для разделения полей отображаемой даты

DateTimeToStr Конвертирует значение даты и времени TDateTime в строку

LongDateFormat Переводит длинную версию даты в строковый формат

LongDayNames Массив названий дней недели, начинается с 1 = Воскресенье

LongMonthNames Массив названий месяцев, начинается с 1 = Январь

LongTimeFormat Длинная версия времени в строковом формате

ShortDateFormat Компактная версия даты в строковом формате

ShortDayNames Массив названий дней недели, начиная с 1 = Воскресенье

ShortMonthNames Массив названий дней месяца, начиная с 1 = Январь

ShortTimeFormat Короткая версия времени в строковый формат

StrToDateTime Конвертирует строку с датой и временем в значение типа TDateTime

TimeAMString Определяет значение AM в процедуре DateTimeToString

TimePMString Определяет значение PM в процедуре DateTimeToString

TimeSeparator Символ, используемый для разделения полей времени

TwoDigitYearCenturyWindow Устанавливает порог столетия для преобразований строки года из 2 цифр

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

Function Date: TDateTime;

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

Function DateTimeToStr(DateTime: TDateTime): String;

Преобразовывает параметр типа TDateTime, содержащий дату и время, в строку. Если параметр DateTime не содержит значения даты, дата устанавливается в 00/00/00. Если параметр DateTime не содержит значения времени, время устанавливается в 00:00:00.

Function DateToStr(Date: TDateTime): String;

Преобразовывает параметр типа TDateTime, содержащий дату, в строку.

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

Function DayOfWeek(Date: TDateTime): Integer;

Возвращает день недели определенной даты как целое число между 1 и 7. Воскресенье — первый день недели, и суббота — седьмой.

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

Извлекает дату из формата TDateTime и помещает год, месяц и день соответственно в переменные Year, Month и Day.

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

Извлекает время из формата TDateTime и помещает часы, минуты, секунды, и миллисекунды соответственно в переменные Hour, Min, Sec и MSec.

Function EncodeDate(Year, Moth, Day: Word): TDateTime;

Возвращает дату в формате TDateTime, полученную из значений параметров Year, Month и Day.

Year должен быть между 1 и 9999.

Допустимые значения Month — от 1 до 12.

Допустимые значения Day — от 1 до 28, 29, 30, или 31, в зависимости от значения Month. Например, возможные значения Day в течение второго месяца (февраля) — от 1 до 28, или от 1 до 29, в зависимости от того, определяет или нет значение Year високосный год.

Если значения находятся вне диапазона, возникает исключительная ситуация EConvertError. Возникающее в результате значение — единица плюс число дней между 30/12/1899 и данной датой.

Function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;

Возвращает время в формате TDateTime, полученное из значений параметров Hour, Min, Sec и MSec.

Если значение типизированной константы Time24Hour ложно (False), значения Hour лежат в пределах от 0 до 12, если истинно (True) — от 0 до 23.

Допустимые значения Min и Sec — от 0 до 59. Допустимые значения MSec — от 0 до 999.

Если значения находятся вне диапазона, возникает исключительная ситуация EConvertError.

Function Now: TDateTime;

Возвращает текущую дату и время в формате TDateTime (дата + время).

Function StrToDate(const S: String): TDateTime;

Преобразовывает строковое представление даты в формат TDateTime. Дата в параметре S должна быть записана по правилам Windows, т.е. должна состоять из двух или трех чисел, отделяемых символом, опреде-ленным в глобальной переменной DateSeparator. Порядок следования месяца, дня и года определен в глобальной переменной ShortDateFormat. Возможные комбинации — m/d/y, d/m/y, и y/m/d.

Если строка содержит только два числа, это интерпретируется как дата (m/d или d/m) в текущем году. Значения Year между 0 и 99 означают год в текущем столетии.

Если строка содержит дату в неверном формате, возбуждается исключительная ситуация EConvertError.

Function StrToTime(Const S: String): TDateTime;

Преобразовывает строковое представление времени в формат TDateTime.

Строка должна состоять из двух или трех чисел, отделяемых символом, определенным в глобальной переменной TimeSeparator. Числа представляют собой часы, минуты, и (необязательно) секунды, в соответствующем порядке.

Если строка содержит время в неверном формате, возбуждается исключительная ситуация EConvertError.

Function Time: TDateTime;

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

Function TimeToStr(Time: TDateTime): String;

Преобразовывает время из формата TDateTime в строковое представление.

Преобразование использует формат, определенный в глобальной переменной LongTimeFormat. Вы можете изменять формат отображения времени, изменяя значения переменных даты и времени (или используя Панель управления Windows).

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

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);

// 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

Преобразование строки в дату

Здравствуйте!
Есть дата — время, например: 08/20/15 01:37:00 PM
В программе реализовал получение вручную (распарсил строку).
Пробовал при помощи функции strtodatetime, используя TFormatSettings.

Строка не конвертируется в дату. В чем моя ошибка? Прошу помочь!
Спасибо!

Добавлено через 1 минуту
date1: tdatetime;

Delphi
10.08.2015, 22:22

Преобразование строки в дату
Привет, всем. Задача такая: Есть данные в элементе формы INPUT. Там люди вводят даты типа.

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

Преобразование строки в дату
import java.util.Date; import java.text.SimpleDateFormat; public class NewClass < .

Преобразование строки в дату
Доброго времени суток. Имеется строка вида «2014.03.02». Как ее преобразовать к типу Дата.

10.08.2015, 22:472
Delphi

Добавлено через 30 секунд
myDate: TDateTime;

Добавлено через 1 минуту
или так

Delphi
Delphi
10.08.2015, 22:49 [ТС]3

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

Добавлено через 1 минуту
’08/20/15 01:37:00 PM’ эту строку функция отказывается принимать.

10.08.2015, 22:504
10.08.2015, 22:55 [ТС]5
10.08.2015, 23:026
Delphi
11.08.2015, 00:01 [ТС]7

Спасибо! завтра буду пробовать

Добавлено через 43 минуты
Возможно ли это реализовать, не разбивая строку? Может я формат неверный указываю?

11.08.2015, 07:398
16.05.2017, 15:039

Сегодня заметил интересную штуку с StrToDateTime на XE7.

Если строка которая конвертируется во время, содержит кроме даты другие левые буквы, то операция все равно проходит корректно.

Delphi
16.05.2017, 15:03
16.05.2017, 15:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Преобразование строки в дату
Всем привет, прошу не бить за тему, не нашёл ничего подходящего, хотя ссылок в поисковике море.

Преобразование строки в дату
Здравствуйте. Пытаюсь преобразовать строку в дату: DateTime d = DateTime.ParseExact(«01-09-2016».

Преобразование строки в дату
Добрый день В делфи код есть такой: for_date:= EncodeDate(ye,mo,da); ey=2011 mo=11 da=26 в С# я.

Преобразование строки в дату
Всем привет! Есть строка вида «текст текст текст 9 Jan 1973 текст текст текст» ее необходимо.

Читать еще:  Код клавиши enter delphi
Ссылка на основную публикацию
Adblock
detector