четверг, 4 августа 2011 г.

Re: Различие в 1 час в File.mtime

В общем это похоже баг Ruby/Windows, судя по англоязычным находкам.

Для себя пока сочли возможным использовать следующий хак
(по мотивам http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2006-05/msg00041.html)

class File::Stat
alias builtin_mtime mtime
def mtime
t = self.builtin_mtime
t += 3600 if Time.now.dst? # correct time when dst is active
end
end if RUBY_PLATFORM =~ /mswin|mingw/


С уважением,
Павел Васёв

4 августа 2011 г. 18:41 пользователь Pavel Vasev
<pavel.vasev@gmail.com> написал:
> Поясню - у нас все идет в UTC. Я не стал его упоминать чтобы не
> усложнять постановку вопроса.
>
> В итоге файлы так и синхронизируются (в s3sync) - "if
> File.mtime(xxx).utc < remotefile.date то скачать новый файл"
>
> dir - имеется ввиду команда командной строки, аля ls.
>
> С уважением,
> Павел Васёв
>
>
>
> 4 августа 2011 г. 17:51 пользователь Max Lapshin
> <max.lapshin@gmail.com> написал:
>> 2011/8/4 Andrew Rudenko <rudenkoco@gmail.com>:
>>> Ну фар переводит в другой часовой пояс, что такое дир не знаю.
>>>
>>> Зачем вы вообще хоть как-то учитываете часовой пояс в каких-то синхронизациях? Почему не переводите любое время в UTC?
>>>
>>> p.s. вариант почему так: 30 ноября в екб было действительно +5 GMT. Руби выводит с учетом этого, а фар без, т.е. с нынешними +6 GMT (время то при этом одно и то же остается).  Но, повторюсь, если вы правда напрограммировали какую-то работу со временем без перевода этого времени в UTC, не имея резких на то оснований, то, скорее всего, совершили большую ошибку ;)
>>>
>>
>> Всегда есть вариант два раза в год на час останавливать всю систему.
>>
>> --
>> --
>> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
>> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>>
>>  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
>> ror2ru@googlegroups.com
>>  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
>>  Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
>

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий