<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: os.time     Lua 5.3]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме os.time     Lua 5.3 форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 02 May 2026 14:11:31 +0300</pubDate>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45788/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_AP18i0W2" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />вопрос возник, когда в os.time() был передан какой-нибудь квиковский datetime<br />=============<br />В первом сообщении ссылка, там пример с полночью первого января 1970 и у них в Рио получилось 10800 (как раз 3 часа), а у Майка вылетел эксепшен. Или заранее проверять, или в pcall и проверять в случае исключения. Кстати говоря, в связи с другой темой озаботился, насколько pcall тормозной. Попробовал экспортнуть всю ТВС простыми call против pcall на каждой строке, результат 18 секунд против 23. В реальном времени можно не париться о ней.<br /><br />Еще плюсик изучения сорцев, теперь 53 и переданную табличку модифицирует, в 51 оставалась как была. <br />
			<i>30.05.2020 21:51:57, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45788/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45788/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 21:51:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45787/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я так понимаю, вопрос возник, когда в os.time() был передан какой-нибудь квиковский datetime = {year=1601, month=1, day=1, hour=0}<br />Если в 5.1 тут возвращался nil, и с ним можно было работать, то теперь перед вызовом os.time надо проверить, как минимум год, чтобы не получить исключение <br />
			<i>30.05.2020 21:37:58, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45787/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45787/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 21:37:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45786/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_3iT7vctm" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />зона имеет значение<br />=============<br />Имелось ввиду результат в 5.1 и 5.3 одинаковый, на зависимо от таймзоны, за исключением случаев с отрицательным временем. <br />
			<i>30.05.2020 21:23:23, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45786/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45786/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 21:23:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45785/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_TykcRFV2" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />В 5.1 если дата была меньше 0, os.time возвращал nil, с которым в общем-то можно было работать.В 5.3 в этом случае вы увидите &quot;time result cannot be represented in this installation&quot;.<br />=============<br />Это да, смотрим сорец <noindex><a href="https://www.lua.org/source/5.3/loslib.c.html#os_time" target="_blank" rel="nofollow">53</a></noindex> и сравниваем с <noindex><a href="https://www.lua.org/source/5.1/loslib.c.html#os_time" target="_blank" rel="nofollow">51</a></noindex>. Но в примере-то из документации не нил возвращается, а вполне себе циферка, зона имеет значение.<br /><br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_4XzDjn2c" href="/user/47/" bx-tooltip-user-id="47"><noindex><a href="mailto:s_mike@rambler.ru" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex></a> написал:<br />os_time берет секунды и первым делом отсчитывает от них часовой пояс. Если взять 0, то при часовом поясе европа получается 1969 год и луа огорчается.<br />=============<br />Так и я о том. Рио плюс три часа, когда там первое января 1970, полночь, в гринвиче уже первое января три часа ночи. А в европе минус час, когда там полночь первого января, тогда, совершенно верно, в гринвиче еще 11 вечера 31 декабря 1969, вот и фейлит. Что забавно, сама mktime считает в диапазоне на год шире, как раз ради таймзон, а потом проверяет, попала ли в допустимый по стандарту диапазон. То есть она внутри сначала сосчитала правильно, а потом вернула ошибку, &quot;ибо нефик&quot;. <br />
			<i>30.05.2020 21:11:18, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45785/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45785/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 21:11:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45784/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Часовой пояс, как бы, ни при чём.<br />В 5.1 если дата была меньше 0, os.time возвращал nil, с которым в общем-то можно было работать.<br />В 5.3 в этом случае вы увидите "<I>time result cannot be represented in this installation</I>". <br />
			<i>30.05.2020 20:35:20, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45784/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45784/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 20:35:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45783/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			А что проверять то? Пример по ссылке в 5.1 работает (результат даже приведен) , а в 5.3 нет. Вот и вся проверка.<br /><br /><br />ВУИГП = DEBUG <br />
			<i>30.05.2020 20:20:40, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45783/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45783/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 20:20:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45782/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Не совсем так, город белых штанов тут не при чем.<br /><br />os_time берет секунды и первым делом отсчитывает от них часовой пояс. Если взять 0, то при часовом поясе европа получается 1969 год и луа огорчается.<br /><br />касаемо 5.1. &nbsp; Не замечалось. Быстрее всего там была возможность работать с отрицательным юникстиме без преобразования os.date. в 5.3 решили навести порядок и при пересборке своих скриптов в режиме ВУИГП (проверках всего и вся) я и увидел эту шляпу.<br /><br />Проверять что было в 5.1 лень. <br />
			<i>30.05.2020 20:00:50, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45782/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45782/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 20:00:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45781/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В примере написано<br /><br />====quote====<br /> &nbsp;In a Unix system (where the epoch is 00:00:00 UTC, January 1, 1970)<B> running in Rio de Janeiro</B> (which is three hours west of Greenwich), we have the following examples:<br />=============<br />То есть дальше идут циферки для Рио, где все поголовно в белых штанах.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_eZK1j9Ho" href="/user/47/" bx-tooltip-user-id="47"><noindex><a href="mailto:s_mike@rambler.ru" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex></a> написал:<br />Теперь lua смотрит часовой пояс.<br />=============<br />Там в сорцах (одинаковых в 53 и 51) просто вызывается сишная mktime, а она смотрит на зону, так что по идее так и должно быть, точно ли 51 не смотрела? <br />
			<i>30.05.2020 17:57:31, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45781/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45781/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 17:57:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.time     Lua 5.3</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45780/topic5509/">os.time     Lua 5.3</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Перекомпилировал свои скрипты, наткнулся:<br /><br />Открываем <noindex><a href="https://www.lua.org/pil/22.1.html" target="_blank" rel="nofollow">https://www.lua.org/pil/22.1.html</a></noindex>, &nbsp;Видим пример<br /><br />print(os.time{year=1970, month=1, day=1, hour=0}) &nbsp; &nbsp; &nbsp;--&gt; 10800<br /><br />Не верим, проверяем.<br /><br />print(os.time{year=1970, month=1, day=1, hour=0})<br />Console:1: time result cannot be represented in this installation<br /><br />И правильно не верим, как выясняется. И в терминале и в стандалоне одинаково.<br /><br />а вот <br /><br />print(os.time{year=1970, month=1, day=1, hour=0})<br /><br /><br />Оказывается.<br /><br />Теперь lua смотрит часовой пояс. У меня часовой пояс +1, и <br />print(os.time{year=1970, month=1, day=1, hour=1}) работает и дает 0<br /><br />Смотрел в документацию на луа - ничего не нашел. На 5.1 в часовой пояс луа не смотрела. <br />
			<i>30.05.2020 16:51:13, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45780/topic5509/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45780/topic5509/</guid>
			<pubDate>Sat, 30 May 2020 16:51:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
