Текущий архив: 2007.09.16;
Скачать: CL | DM;
ВнизПеревод любого гринвичского времени в местное Найти похожие ветки
← →
Arfedin (2007-03-09 16:27) [0]Необходима функция:
Function(GMT): LocalDateTime, где
GMT - Greenwich Mean Time, дата и время по гринвичу,
LocalDateTime - локальное время
Часовой пояс при пересчёте берётся из настроек Windows).
Как пример работы, для GMT+08:00:
16:00:00 28.10.2006 => 01:00:00 29.10.2006
17:00:00 28.10.2006 => 02:00:00 29.10.2006
18:00:00 28.10.2006 => 02:00:00 29.10.2006(тот же результат)
19:00:00 28.10.2006 => 03:00:00 29.10.2006
Почему перевод стрелок в 2 ночи - даже и не знаю. Так всегда, для всех часовых поясов?
← →
Плохиш © (2007-03-09 16:40) [1]Модуль XSBuiltIns класс TXSBaseCustomDateTime.
← →
Arfedin (2007-03-09 18:10) [2]Не нашёл TXSBaseCustomDateTime. Ещё нету в delphi6?
← →
Джо © (2007-03-09 18:14) [3]Не вполне понял вопрос, наверное.
См. SystemTimeToTzSpecificLocalTime из WinAPI. И вообще раздел Time functions в SDK или MSDN.
← →
Arfedin (2007-03-09 18:46) [4]Вот процедура, пользуйтесь кому надо. Всем спасибо!
Function GmtToLocalTime(t: tdatetime):tdatetime;
var
y1,y2: TSystemTime;
begin
DateTimeToSystemTime(t,y1);
SystemTimeToTzSpecificLocalTime(nil,y1,y2);
result:=SystemTimeToDateTime(y2)
end;
← →
Интересующийся (2007-03-10 06:05) [5]Arfedin (09.03.07 18:46) [4]
А обратная как будет выглядеть?
← →
Arfedin (2007-03-26 18:20) [6]В продолжение темы. Как раз понадобилось обратное преобразование. Но какое-то странное, delphi6 о нём ничего не знает. И delphi7, кажись, тоже. Итак:
Function LocalTimeToGMT(t: tdatetime):tdatetime;
var
y1,y2: TSystemTime;
z:TIME_ZONE_INFORMATION;
begin
DateTimeToSystemTime(t,y1);
GetTimeZoneInformation(z);
TzSpecificLocalTimeToSystemTime(z,y1,y2);
result:=SystemTimeToDateTime(y2)
end;
Однако есть небольшое НО, чтобы функция работала:
1)
function TzSpecificLocalTimeToSystemTime(const lpTimeZoneInformation: TIME_ZONE_INFORMATION;
const lpLocalTime: SYSTEMTIME; var lpUniversalTime: SYSTEMTIME): BOOL;stdcall;
{$EXTERNALSYM TzSpecificLocalTimeToSystemTime}
2) function TzSpecificLocalTimeToSystemTime; external kernel32 name "TzSpecificLocalTimeToSystemTime";
Если есть предложения как убрать это НО, буду рад. Почему delphi может не знать об этой функции?
Страницы: 1 вся ветка
Текущий архив: 2007.09.16;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.046 c