powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
10 сообщений из 10, страница 1 из 1
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135465
pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pas
Гость
Никак не получается:
Есть:
Количество миллисекунд с 1970.
Надо:
Получить дату события.
Чего-то не получается. TTimeStamp дурит?
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135499
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дело в том что таймстамп это колличество дней с 1899 года ... это не юниксовый формат. Так что пеерсчитывай форматы дат :)) у меня стоит разница в датах 25569 хотя могу ошибаться :)
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135516
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... и не забудь про перевод на летнее/зимнее время, если надо, - он не учитывается в формате "мс с 01.01.1970"
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135521
pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pas
Гость
Еще раз:
У меня есть события, датированные в значениях (в млск.) с 1970.
Хочу получить дату (в DateTime) для событий.
...
var
s1970: TTimeStamp;
MsecsSince1970: comp;
sPoint:TDateTime;
begin
s1970 := DateTimeToTimeStamp(EncodeDate(1970,1,1));
MsecsSince1970 := //... значение в млск.
sPoint:= TimeStampToDateTime(
MSecsToTimeStamp(
Floor(TimeStampToMSecs(s1970))+MsecsSince1970
));
...в итоге полу4ается фигня...
В чем фикус-пикус???
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135537
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, извини, я тебя запутал!

Число, которое у тебя есть, это количество секунд , а не миллисекунд!!

Еще раз сорри
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135552
pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pas
Гость
А код (см. выше) можно поправить?
Значение, например, такое: 1049784104

Миллисекунды или нет,
при делении на 1000 та же фигня получается....
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135567
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем такие сложности?
Ведь можно так:
Код: plaintext
1.
2.
3.
4.
5.
var
 s1970:TDateTime;
begin
s1970:=EncodeDate( 1970 , 1 , 1 );
sPoint:=s1970+SecSince1970/ 86400 ;
end;
где 86400 - кол-во секунд в сутках
Правда, это без учета летнего/зимнего времени...

Удачи
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135694
pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pas
Гость
Большое спасибо, вроде получилось,
и действительно секунды.

Однако, странно, что через TimeStamp не прошло...
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135770
pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pas
Гость
Млин, день, месяц, год, минуты и секунды - совпадают,
а вот ЧАСЫ нет!

Для 1049784104
должно быть 08.04.03 10:41:44,
а получается 08.04.03 06 :41:44
разница на 4 часа

Для 1047579960
должно быть 13.03.03 15:26:20,
а получается 13.03.03 18 :26:20
разница на 3 часа

???
...
Рейтинг: 0 / 0
Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
    #32135919
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну говорил же уже, что потребуется еще учитывать переход летнее/зимнее+часовой пояс . У тебя секунды идут по Гринвичу !

Удачи
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Help, plz: sPoint = s1970 + MSecsSince1970.... [D5]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]