Laine_prikol 48 Опубликовано: 20 декабря, 2017 (изменено) Где можно найти сайт который при отправке запроса вернёт реальное московское время? В формате: часы:минуты Изменено 20 декабря, 2017 пользователем Laine_prikol Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 20 декабря, 2017 В интернете. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Laine_prikol Автор вопроса 48 Опубликовано: 20 декабря, 2017 В интернете. Где, гуглил там хрень всякая либо без апи, есть 1 но он платный Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 20 декабря, 2017 Есть вот такая апишка: https://www.amdoren.com/time-zone-api/ Написано что бесплатная, но надо регаться чтобы ключ получить. Не пробовал сам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 21 декабря, 2017 Ну да, если не искать, то много не найдешь. Даже на форуме. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 903 Опубликовано: 21 декабря, 2017 (изменено) А чего париться-то, API всякие искать... гуглим что-то наподобие "unix time", выбираем первый попавшийся сайт (к примеру, https://www.unixtimestamp.com/), отсылаем обычный запрос на получение контента веб-страницы, парсим результат через регулярку и наслаждаемся: -- Получаем содержимое веб-страницы через дефолтную internet-либу local data = "" for chunk in require("internet").request("https://www.unixtimestamp.com/") do data = data .. chunk end -- Извлекаем время и корректируем часовой пояс local timezone = 3 local timestamp = tonumber(data:match("(%d+)[^%d]+seconds since Jan")) + 3600 * timezone print(os.date("%c", timestamp)) Изменено 21 декабря, 2017 пользователем ECS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 21 декабря, 2017 А чего париться-то, API всякие искать... гуглим что-то наподобие "unix time", выбираем первый попавшийся сайт (к примеру, https://www.unixtimestamp.com/), отсылаем обычный запрос на получение контента веб-страницы, парсим результат через регулярку и наслаждаемся: -- Получаем содержимое веб-страницы через дефолтную internet-либу local data = "" for chunk in require("internet").request("https://www.unixtimestamp.com/") do data = data .. chunk end -- Извлекаем время и корректируем часовой пояс local timezone = 3 local timestamp = tonumber(data:match("(%d+)[^%d]+seconds since Jan")) + 3600 * timezone print(os.date("%c", timestamp)) А если нужно постоянно получать время? Парсинг не подойдёт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 21 декабря, 2017 Отнять аптайм компутера при запуске проги и добавлять его каждый раз перед выводом. Собственно, по ссылке оно и есть. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ivan52945 75 Опубликовано: 21 декабря, 2017 Отнять аптайм компутера при запуске проги и добавлять его каждый раз перед выводом. Собственно, по ссылке оно и есть. а там периодически корректировать ошибки не надо при таком раскладе? или всё норм Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 21 декабря, 2017 а там периодически корректировать ошибки не надо при таком раскладе? или всё нормНадо корректировать после каждого рестарта сервера. Как отследить этот момент, не ясно, поэтому надо корректировать периодически. А вот, как часто надо корректировать, зависит от условий задачи. Слишком частые обращения к сервису чреваты баном по IP, а редкие коррекции лишают такие часы смысла. Заходишь такой после рестарта сервера, а часы отстают на минуту-две. Зачем они тогда вообще нужны? Да и вообще, хороший вопрос, зачем наблюдать реальное время именно в Майнкрафте, когда есть более удобные инструменты. Сделать более-менее правдоподобные часики реально, но админ сервера не будет рад использованным методам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ivan52945 75 Опубликовано: 22 декабря, 2017 Надо корректировать после каждого рестарта сервера. Как отследить этот момент, не ясно, поэтому надо корректировать периодически. А вот, как часто надо корректировать, зависит от условий задачи. Слишком частые обращения к сервису чреваты баном по IP, а редкие коррекции лишают такие часы смысла. Заходишь такой после рестарта сервера, а часы отстают на минуту-две. Зачем они тогда вообще нужны? Да и вообще, хороший вопрос, зачем наблюдать реальное время именно в Майнкрафте, когда есть более удобные инструменты. Сделать более-менее правдоподобные часики реально, но админ сервера не будет рад использованным методам. компуктеркрафт мог бы это отследить, ибо там проги зависят от релода сервака Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 22 декабря, 2017 компуктеркрафт мог бы это отследить, ибо там проги зависят от релода сервакаКакова ирония! То, что всегда считалось недостатком ComputerCraft, в определённой ситуации стало достоинством. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 22 декабря, 2017 Какова ирония! То, что всегда считалось недостатком ComputerCraft, в определённой ситуации стало достоинством. Ну, у всего на этом свете есть две стороны. =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 22 декабря, 2017 Уже не помню где и как я находил нормальную страницу интернет откуда можно было брать время. Почитай код http://computercraft.ru/topic/1898-binarnye-chasy/ там есть одна из ссылок что возвращает время. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
HixOff 102 Опубликовано: 6 января, 2018 http://computercraft.ru/topic/688-poluchenie-tochnogo-realnogo-vremeniа вот этого мало? в крайнем случае, если нет файловой системы(например, какой-нибудь микроконтроллер), можно поставить ПК, который будет тебе это время по беспроводной сети пересылать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 6 января, 2018 http://computercraft.ru/topic/688-poluchenie-tochnogo-realnogo-vremeni а вот этого мало? в крайнем случае, если нет файловой системы(например, какой-нибудь микроконтроллер), можно поставить ПК, который будет тебе это время по беспроводной сети пересылать Маловато. Во-первых, возвращается локальное время сервера, зависящее исключительно от предпочтений админа. Во-вторых, каждую секунду дёргать файловую систему ради получения точного времени — тоже сомнительная идея, которая при массовом использовании вряд ли будет одобрена админом. Самый правильный способ, на мой взгляд, как уже предложил @ivan52945, использовать ComputerCraft для отслеживания рестарта сервера. А время корректировать сразу после рестрата и каждые 15 минут, например. Интересно было бы рассмотреть возможность использования каких-либо схем на красной пыли, но единственное, что я смог сразу вспомнить — это сенсор робота-рыбака, сбивающийся при выгрузке чанка. Вряд ли кто-то захочет использовать такую схему в часах. Возможно, кто-то найдёт более удачный способ отслеживания момента перезагрузки чанка без использования ComputerCraft. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 23 января, 2018 Маловато. Во-первых, возвращается локальное время сервера, зависящее исключительно от предпочтений админа. Во-вторых, каждую секунду дёргать файловую систему ради получения точного времени — тоже сомнительная идея, которая при массовом использовании вряд ли будет одобрена админом. ну это сильно драматизированный взгляд на суть вопроса. Не все так там страшно, как оно кажется. Нет никаких предпочтений админов Я никогда не видел хоста и тем более админа, который бы установил время и календарь майя на своем сервере, или вообще от балды дату там засетил. Даже если это вдруг и так, то, на минуточку, где гарантия, что на сайтах точного времени админ тамошний без предпочтений))) Это первое. Второе. Как правило, в ОС включена опция # Whether persistent file systems such as disk drives should be # 'buffered', and only written to disk when the world is saved. This # applies to all hard drives. The advantage of having this enabled is that # data will never go 'out of sync' with the computer's state if the game # crashes. The price is slightly higher memory consumption, since all # loaded files have to be kept in memory (loaded as in when the hard drive # is in a computer). bufferChanges=true а это значит, что вся файловая система забуферизирована в ОЗУ и никакого лишнего "дергания" жесткого диска хоста не происходит. ОС глобально сохраняет изменения на диск не чаще, чем раз в 30 сек, а может и реже. Так что можно смело отслеживать fs.lastModified Ну и самое главное. В детском майнкрафте сложно представить ситуацию, где требуется супер точное астрономическое время вплоть до иоктосекунд, а также высокая частота его получения. Это же не полет Вояджера какой-то. Что там в майне? Как правило, нужно залогинить ивент, когда именно Mishutka12 купил алмазики в админшопе за UU, чтобы отчетность была, или, например, поймайть точное время и дату, когда Квертик нарисовался в радиусе радаров и его засекли сенсоры охранной системы, когда он шастал возле чужого домика и вынюхивал, что можно грифануть, или, например, время записать, когда 2-й энергоблок реактора выработал урановые стержни и стопнулся. Вот тогда-то и пригодится получение времени. Вот и все. Даже если делать детские ссаные бесполезные часики на каком-то экране, как многие любят это делать в своих домиках, то не обязательно там получать и принтить секунды, минут, я думаю, будет достаточно, но можно и ежесекундно проверять, хоть это и дичь, конечно Так что, скорее всего, способ получения времени из даты модификации файла - самый менее ресурсозатратный, мгновенный и безотказный, уж тем более в случае, если кому-то вдруг взбрендит в голову слать ежесекундно get запросы куда-то в какую-то удаленную попку или что-то на редстоуне городить) 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 23 января, 2018 Даже если делать детские ссаные бесполезные часики на каком-то экране, как многие любят это делать в своих домиках, то не обязательно там получать и принтить секунды, минут, я думаю, будет достаточно, но можно и ежесекундно проверять, хоть это и дичь, конечно Мне кажется, для часиков там достаточно при старте (и потом где-нибудь раз в час) синхронизировать состояние. А потом просто слипами отсчитывать секунды / минуты.Минимум нагрузки, приемлемая точность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 24 января, 2018 В детском майнкрафте сложно представить ситуацию, где требуется супер точное астрономическое время вплоть до иоктосекунд, а также высокая частота его получения.Представить сложно, но ТС хочет получить (цитата) "реальное московское время", не уточнив, правда, насколько оно должно быть близким к реальному. Одного игрока устроит погрешность и в одну-две минуты, а какой-то маньяк будет пытаться довести ее до хотя бы 200ms. Это первый нюанс, создающий почву для дискуссии о методах получения времени и создаваемой при этом нагрузки. Второй нюанс в том, что игровые сервера бывают разные, и на каких-то из них ход часов может быть пущен на самотек, вынуждая игроков обращаться к внешним серверам и писать своё подобие ntpd. Если при этом серверное время еще иногда и корректируется рывками, то тут остаётся лишь постоянно долбить внешние сервера, пока те не забанят. Или придется снизить требования точности. Мне кажется, для часиков там достаточно при старте (и потом где-нибудь раз в час) синхронизировать состояние. А потом просто слипами отсчитывать секунды / минуты. Минимум нагрузки, приемлемая точность.Вычисление времени через разницу computer.uptimeочень эффективно, но, к сожалению, чувствительно к рестартам игрового сервера и выгрузке чанков. Время от времени придётся сверяться с другими источниками. Интервал сверки определяется точностью, на которую игрок нацелен. вся файловая система забуферизирована в ОЗУ и никакого лишнего "дергания" жесткого диска хоста не происходит. ОС глобально сохраняет изменения на диск не чаще, чем раз в 30 сек, а может и реже.Интересная информация. Надо будет как-нибудь стресс-тест прогнать. Так что, скорее всего, способ получения времени из даты модификации файла - самый менее ресурсозатратный, мгновенный и безотказный, уж тем более в случае, если кому-то вдруг взбрендит в голову слать ежесекундно get запросы куда-то в какую-то удаленную попку или что-то на редстоуне городить)Согласен, трудно найти что-то лучше. Для логирования событий на сервере Майнкрафта этот способ вне конкуренции. А если на сервере уже есть вменяемая синхронизация времени, то и для остальных целей тоже – лучший способ. Но, как говорилось, дьявол кроется в деталях. Игроки и сервера бывают разные. Рядовой игрок Майнкрафта не знает, какой способ синхронизации часов сервера выбрал админ, как сильно часы будут отставать или убегать и какие рывки они совершат в будущем. Как и админ не знает заранее, насколько часто любителей точного времени будут дёргать файловую систему, и сколько их окажется на сервере в одном интервале времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Laine_prikol Автор вопроса 48 Опубликовано: 24 января, 2018 Чё вы так все, я вообще не для OpenComputers. Я просто хочу сделать луа скрипт который бы синкал время мск, и выставлял дату в винде Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 24 января, 2018 Чё вы так все, я вообще не для OpenComputers. Я просто хочу сделать луа скрипт который бы синкал время мск, и выставлял дату в виндеПфхахаха! Действительно, а что это мы. Нам лишь бы про Lua, да OpenComputers флудить. Да еще и про ComputerCraft иногда. Для выставления времени в винде не нужен скрипт. Находишь в интернете какой-нибудь NTP-сервер, да прописываешь его в настройках. Да и наверняка какой-нибудь time.windows.com уже прописан, осталось только галочку поставить для синхронизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Где можно найти сайт который при отправке запроса вернёт реальное московское время? В формате: часы:минуты
Изменено пользователем Laine_prikolПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах