DataTime - дайте идея...
5 отговора
310 прегледа
DataTime - дайте идея...
Едно въпросче за раздвижване на сивото вещество, че явно аз тотално съм забил.
Та въпроса е следния - ICQ и history-файловете - ако сте ги разглеждали -там има нещо подобно
<event>
<type>0</type>
<incoming>Yes</incoming>
<time>1144585987</time> <------- ТЕ за това става дума
<text>това трябва да е текста на съобщението.
</text>
</event>
До колкото знам DataTime-a е реално число (Double) - ама тук явно е конвертирано или кодирано по някав начин - не е само дата - ами и часа е кодиран :(
Дайте идеи - просто се базикам искам да си прекарам history-to в по нормален вид.
P.S.
сори за днешната среща ако я е имало - но бях out. Следващия път ще съм на линия.
---

Та въпроса е следния - ICQ и history-файловете - ако сте ги разглеждали -там има нещо подобно
<event>
<type>0</type>
<incoming>Yes</incoming>
<time>1144585987</time> <------- ТЕ за това става дума
<text>това трябва да е текста на съобщението.
</text>
</event>
До колкото знам DataTime-a е реално число (Double) - ама тук явно е конвертирано или кодирано по някав начин - не е само дата - ами и часа е кодиран :(
Дайте идеи - просто се базикам искам да си прекарам history-to в по нормален вид.
P.S.
сори за днешната среща ако я е имало - но бях out. Следващия път ще съм на линия.
---
Re: DataTime - дайте идея...
Прилича ми на секунди след някоя дата (за Юникс например, след 1.1.1970)
1148415667 е някъде около вчера (23-ти) след обяд или вечерта.
Твоето е с около 4 000 000 секунди по-малко (май е от преди около 40 дни), но това - ако базата е същата.
1148415667 е някъде около вчера (23-ти) след обяд или вечерта.
Твоето е с около 4 000 000 секунди по-малко (май е от преди около 40 дни), но това - ако базата е същата.
И още :)
xDtTm_1_1_1970 е 25569 (по оня начин, който описваш)
значи може да пробваш - това трябва да е преобразуването:
25569+(новото ти число)/24/60/60
25569+(1144585987)/24/60/60
И като напишеш нещо ценно, да го споделиш :)
значи може да пробваш - това трябва да е преобразуването:
25569+(новото ти число)/24/60/60
25569+(1144585987)/24/60/60
И като напишеш нещо ценно, да го споделиш :)
Re: И още :)
10x - ще пробвам - това за UNIX-a не ми беше хрумвало - язък, че последните месеци тренирах пускане и чоплене в скриптове някои от тях имаха параметри дати.
---

---
10x- ето и решението...
Не съм го писал аз - но пък ти ми помогна да го намеря бързо...
function UNIXTimeToDateTime(UNIXTime: LongWord): TDateTime;
var
TimeZoneInformation: TTimeZoneInformation;
begin
GetTimeZoneInformation(TimeZoneInformation);
Result := StrToDate('01/01/1970') + (UNIXTime/(24*3600)) - ((TimeZoneInformation.Bias + TimeZoneInformation.DaylightBias) / (24 * 60));
end;
function DateTimeToUNIXTime(DelphiTime : TDateTime): LongWord;
var
MyTimeZoneInformation: TTimeZoneInformation;
begin
GetTimeZoneInformation(MyTimeZoneInformation);
Result := round(DelphiTime - StrToDate('01/01/1970') + ((MyTimeZoneInformation.Bias) / (24 * 60))) * (24 * 3600);
end;
---

function UNIXTimeToDateTime(UNIXTime: LongWord): TDateTime;
var
TimeZoneInformation: TTimeZoneInformation;
begin
GetTimeZoneInformation(TimeZoneInformation);
Result := StrToDate('01/01/1970') + (UNIXTime/(24*3600)) - ((TimeZoneInformation.Bias + TimeZoneInformation.DaylightBias) / (24 * 60));
end;
function DateTimeToUNIXTime(DelphiTime : TDateTime): LongWord;
var
MyTimeZoneInformation: TTimeZoneInformation;
begin
GetTimeZoneInformation(MyTimeZoneInformation);
Result := round(DelphiTime - StrToDate('01/01/1970') + ((MyTimeZoneInformation.Bias) / (24 * 60))) * (24 * 3600);
end;
---
Няма да повярваш, но точно преди 48 часа
Няма да повярваш, но точно преди 48 часа си мислех, че когато имам време ще се занимая с часовите зони на това преобразуване. Оная вечер направо извадих 3 часа от времето на сървъра и работата заспа.
Та и аз да ти благодаря, че ми спести ровене из DateTime функциите!
Все пак, когато ползваш тия времена, трябва да си сигурен, че са по гринуич.
Та и аз да ти благодаря, че ми спести ровене из DateTime функциите!
Все пак, когато ползваш тия времена, трябва да си сигурен, че са по гринуич.