Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование времени [D7, WinXP]


Страницы:   1 2 3

Ученик ©   (2004-11-17 15:08:00) 

Уважаемые мастера, не подскажете ли, как можно преобразовать время, представленное в формате (для примера: 946972800, 1098547200, ...), в нормальное представление???
Шеф дал указание разобраться с представлением данных в таблице, формируемой Info Matic'ом... "просит" срочно :(


Defunct   (2004-11-17 21:46:00) [21]

> Теперь вопрос в том, как перевести эту дату (точку отсчета?) в секунды

Пересчитывать что?
Дата и так представлена в секундах.

Вы запутались в трех соснах?


Rocket   (2004-11-17 21:32:00) [22]

Прикиньте, у меня оказывается другой форматец! Тема не закрыта!

Вот, что я имею:

546cc160 (1416413536) - 23:22 17.11.2004
7813f450 (2014573648) - 23:23 17.11.2004

разница
23A732F0 (598160112) - 1 минута (примерно, подозреваю, что основано далеко не на секундах)

Расшифруйте плиз. Сам уже ничё не соображаю :) 4 байта! Как такое возможно?!

Подсказка: Этот формат использует NOD32 для функции Schedule.


Rocket   (2004-11-17 17:22:00) [23]

begin...end
cae

Ну в любом случае спасибо вам обоим.


begin...end   (2004-11-17 17:20:00) [24]


> [16] Rocket ©   (17.11.04 17:16)


> А как же со временем быть?

Ну тогда DateTimeToStr вместо DateToStr.

Тот же результат получится и при использовании UnixToDateTime.


Rocket   (2004-11-17 17:19:00) [25]

http://www.delphifaq.com/fq/q1070.shtml


Rocket   (2004-11-17 17:16:00) [26]

> [14] begin...end

А как же со временем быть?

Ды я имел ввиду как раз UnixToDateTime, что порекомендовал cae.


Digitman   (2004-11-17 17:10:00) [27]


> Ученик


?cdate(1098224400/3600/24  + cdbl(cdate("1.1.1970")))
19.10.2004 22:20:00


begin...end   (2004-11-17 17:08:00) [28]


> [11] Rocket ©   (17.11.04 17:05)

ShowMessage(DateToStr(StrToDate('1.1.1970') + 1098224400 / (60 * 60 * 24)))


cae   (2004-11-17 17:08:00) [29]

Попробуй ф-ю UnixToDateTime из модуля DateUtils


Digitman   (2004-11-17 17:07:00) [30]


> Ученик   (17.11.04 17:01) [9]


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

подели сначала 1098224400 на 3600*24 и уже результат в виде строки подставляй в [6] вместо "1098224400"


Rocket   (2004-11-17 17:05:00) [31]

Вот только функцию бы написать, чтоб не пересчитывать :)


Rocket   (2004-11-17 17:03:00) [32]

Да вы чё? Я уже на калькуляторе посчитал - примерно то 34,8 лет.
Чем не юникс? :)


Ученик   (2004-11-17 17:01:00) [33]

Пишет:
Overflow
:(((


Digitman   (2004-11-17 16:49:00) [34]


> Ученик   (17.11.04 16:45) [7]
> под Виндой сижу, да и прога под нее разработана.


под "Виндой" запросто могут работать, например, и допотопные ДОС-задачи, слепленные на Фоксе .. и использующие как раз юниксовый отсчет времени.. это факт


Ученик   (2004-11-17 16:45:00) [35]

Я под Виндой сижу, да и прога под нее разработана.
А предложений никаких?


Digitman   (2004-11-17 16:44:00) [36]

Access под рукой ?

жмай там CTRL-G и вводи

?cdate(cdbl("1098224400") + cdbl(cdate("1.1.1970")))

если получишь дату, похожую на правду, то предположение о Юниксовом эпоховом формате подтверждается


Digitman   (2004-11-17 16:40:00) [37]

unix'ая "эпоха", кажись, начинается с 1.1.1970
тек.дата в этой эпохе во многих представлениях выражается как кол-во секунд. прошедших с начала этой "эпохи"

дурь, но - факт.


Ученик   (2004-11-17 16:25:00) [38]

Да, и еще: есть предположение, что полный формат записи:
День (нумерация с 0) Неделя (0-1, 1-2, ...) чч:мм
То есть 23.10.2004 предстает в виде:
День 0 Неделя 0-1 00:00


Ученик   (2004-11-17 16:19:00) [39]

Кажется, я понял закономерность: время в таблице изменяется с интервалом в 10 мин (600 сек), т.е.
1098224400
1098225000
1098225600
...
Выходит, время измеряется в секундах.
Как удалось выяснить начальная дата записи: 23.10.2004.
Теперь вопрос в том, как перевести эту дату (точку отсчета?) в секунды :(
Если есть идеи, буду ОЧЕНЬ благодарен


S.P.V   (2004-11-17 15:16:00) [40]

FormatDateTime( 'The meeting is on  dddd, mmmm d, yyyy,  at  hh:mm AM/PM', 64534545);

Читай Help FormatDateTime


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо