Как получить значение UTC в ассемблере zOS - PullRequest
0 голосов
/ 07 ноября 2019

Я знаю, что инструкция STCK даст мне значение TOD, которое является временем, прошедшим с 1-1-1900. Как я могу получить время UTC, которое прошло с 1-1-1970?

1 Ответ

1 голос
/ 07 ноября 2019

Если ваш код на Ассемблере соответствует LE (т.е. вы используете логику ввода CEEENTRY и связанные с ней макросы), вы можете вызывать такие функции библиотеки C, как time () или time64 () чтобы получить желаемый результат.

Если по какой-то причине вы не можете сделать свой код LE-совместимым, я предлагаю макрос TIME , задающий формат BIN и ZONE = UTC, а затем рассчитайте смещениес полуночи 01 января 1970 года путем вычитания разницы между этим временем / датой и основанием для часов времени, то есть полуночи 01 января 1900 года. Конечно, это константа, так что вам нужно понять это только один раз. Я использовал этот калькулятор и получил 2,208,988,800 в качестве константы. Обратите внимание, что TIME BIN возвращает 32-разрядное целое число, указывающее число сотых секунды с начала эпохи.

...