преобразовать время эпохи в удобочитаемое без специальной функции - PullRequest
1 голос
/ 15 ноября 2011

Я пишу макрос для slick-edit (с похожим языком C slick-C)
Насколько я обнаружил, нет никаких функций времени, которые могли бы помочь мне преобразовать время эпохи (1321357827) в удобочитаемые дату и время

(если кто-то из вас знает, как это сделать в Slick-C, это здорово, те из вас, кто этого не знает - примите C без time.h или других библиотек)

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

В SE16 вы найдете целый класс для манипуляции с датой / временем в se / datetime / DateTime.e.Кроме того, встроенная функция _time имеет возможность вернуть время эпохи.Вы должны найти достаточно примера кода там.

И для базового алгоритма я нашел еще один вопрос SO, на который ответили: Включает ссылку на источник gmtime .Оттуда вы сможете адаптироваться к коду SlickEdit.

1 голос
/ 15 ноября 2011

Если вам нужно только время, которое вы можете сделать:

sec_of_day = epoch % (24 * 60 * 60);
hour       = sec_of_day / (60 * 60);
minute     = sec_of_day % (60 * 60) / 60;
second     = epoch % 60;

.Это, конечно, не учитывая часовой пояс вашей системы.

Если вам нужна дата, вам нужно учитывать високосные годы.

РЕДАКТИРОВАТЬ: Предупреждение : этот кодне учитывать високосные секунды.

...