def self.ru_strftime(time, format_str='%d.%m.%Y')
clean_fmt = format_str.to_s.gsub(/%{2}/, RuTils::SUBSTITUTION_MARKER).
gsub(/%a/, Date::RU_ABBR_DAYNAMES[time.wday]).
gsub(/%A/, Date::RU_DAYNAMES[time.wday]).
gsub(/%b/, Date::RU_ABBR_MONTHNAMES[time.mon]).
gsub(/%d(\s)*%B/, '%02d' % time.day + '\1' + Date::RU_INFLECTED_MONTHNAMES[time.mon]).
gsub(/%e(\s)*%B/, '%d' % time.day + '\1' + Date::RU_INFLECTED_MONTHNAMES[time.mon]).
gsub(/%B/, Date::RU_MONTHNAMES[time.mon]).
gsub(/#{RuTils::SUBSTITUTION_MARKER}/, '%%')
time.respond_to?(:strftime_norutils) ? time.strftime_norutils(clean_fmt) : time.to_time.strftime_norutils(clean_fmt)
end