Thread: Даты по-русски

Даты по-русски

From
"Viktor Vislobokov"
Date:
Мне тут вопрос задали.
Как сделать так чтобы to_char возвращал дату по-русски?
Я так почитал доку и вижу что никак?

А это считать багом или фичей? Вообще-то если мы работаем в русской
локали, то дни недели и месяцы наверное всё-таки по-русски должны
выдаваться. Нет?

--
С уважением, Виктор



Re: Даты по-русски

From
Oleg Bartunov
Date:
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-1929614923-1114795056=:4489
Content-Type: TEXT/PLAIN; charset=koi8-r; format=flowed
Content-Transfer-Encoding: 8BIT

On Fri, 29 Apr 2005, Viktor Vislobokov wrote:

> Мне тут вопрос задали.
> Как сделать так чтобы to_char возвращал дату по-русски?
> Я так почитал доку и вижу что никак?
>
> А это считать багом или фичей? Вообще-то если мы работаем в русской локали,
> то дни недели и месяцы наверное всё-таки по-русски должны выдаваться. Нет?

это такой геморрой склонять месяцы, что как мне помнится никому не
захотелось с этим связываться.  Попробуй с '/bin/date' поиграться.
Мое мнение, что это проще сделать на уровне функций.

>
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
---559023410-1929614923-1114795056=:4489--

Re: Даты по-рус

From
"Viktor Vislobokov"
Date:
>> Мне тут вопрос задали.
>> Как сделать так чтобы to_char возвращал дату по-русски?
>> Я так почитал доку и вижу что никак?
>>
>> А это считать багом или фичей? Вообще-то если мы работаем в русской
>> локали, то дни недели и месяцы наверное всё-таки по-русски должны
>> выдаваться. Нет?
>
>
> это такой геморрой склонять месяцы, что как мне помнится никому не
> захотелось с этим связываться.  Попробуй с '/bin/date' поиграться.
> Мое мнение, что это проще сделать на уровне функций.

А зачем сколонять?
Вот кто хочет склонять, тот пусть функции пишет, а дата и дни недели
должны выдаться согласно функции strftime по системной локали.
Пример:
#include <stdio.h>
#include <time.h>
#include <locale.h>

main()
{
  char *buf;
  size_t size = 60;
  size_t len;
  time_t t;

  setlocale(LC_ALL, "");

  t = time(NULL);

  buf = (char *)malloc(size);
  len = strftime(buf, size, "%d, %b (%A)", localtime(&t));
  puts(buf);

  free(buf);
  return(0);
}

Результат выполнения:

03, Май (Вторник)

Я думаю большинство вполне было бы довольно этим.
В общем - снова баг.

--
С уважением, Виктор



Re: Даты по-рус

From
Oleg Bartunov
Date:
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-615069368-1115099093=:18597
Content-Type: TEXT/PLAIN; charset=koi8-r; format=flowed
Content-Transfer-Encoding: 8BIT

On Tue, 3 May 2005, Viktor Vislobokov wrote:

>
>>> Мне тут вопрос задали.
>>> Как сделать так чтобы to_char возвращал дату по-русски?
>>> Я так почитал доку и вижу что никак?
>>>
>>> А это считать багом или фичей? Вообще-то если мы работаем в русской
>>> локали, то дни недели и месяцы наверное всё-таки по-русски должны
>>> выдаваться. Нет?
>>
>>
>> это такой геморрой склонять месяцы, что как мне помнится никому не
>> захотелось с этим связываться.  Попробуй с '/bin/date' поиграться.
>> Мое мнение, что это проще сделать на уровне функций.
>
> А зачем сколонять?
> Вот кто хочет склонять, тот пусть функции пишет, а дата и дни недели должны
> выдаться согласно функции strftime по системной локали.
> Пример:
> #include <stdio.h>
> #include <time.h>
> #include <locale.h>
>
> main()
> {
> char *buf;
> size_t size = 60;
> size_t len;
> time_t t;
>
> setlocale(LC_ALL, "");
>
> t = time(NULL);
>
> buf = (char *)malloc(size);
> len = strftime(buf, size, "%d, %b (%A)", localtime(&t));
> puts(buf);
>
> free(buf);
> return(0);
> }
>
> Результат выполнения:
>
> 03, Май (Вторник)
>
> Я думаю большинство вполне было бы довольно этим.
> В общем - снова баг.

Это не баг, это руки не дошли. Там не так все просто, на самом деле.
Ты даже не представляешь какие есть locale ! А просто для ru_RU вкрячить
хак никто не позволит.

>
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
---559023410-615069368-1115099093=:18597--

Re: Даты по-рус

From
"Viktor Vislobokov"
Date:
>
> Это не баг, это руки не дошли. Там не так все просто, на самом деле.
> Ты даже не представляешь какие есть locale ! А просто для ru_RU вкрячить
> хак никто не позволит.

Чего-то я в этой жизни не понимаю. Почему использование
СТАНДАРТНОЙ функции strftime считается кряком, хаком и
всем остальным? Что может быть естественнее? О соответствии
локали в данном случае заботится сама ОС.

--
С уважением, Виктор



Re: Даты по-рус

From
Oleg Bartunov
Date:
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-761355704-1115114200=:18597
Content-Type: TEXT/PLAIN; charset=koi8-r; format=flowed
Content-Transfer-Encoding: 8BIT

On Tue, 3 May 2005, Viktor Vislobokov wrote:

>
>>
>> Это не баг, это руки не дошли. Там не так все просто, на самом деле.
>> Ты даже не представляешь какие есть locale ! А просто для ru_RU вкрячить
>> хак никто не позволит.
>
> Чего-то я в этой жизни не понимаю. Почему использование
> СТАНДАРТНОЙ функции strftime считается кряком, хаком и
> всем остальным? Что может быть естественнее? О соответствии
> локали в данном случае заботится сама ОС.

красиво говоришь. Я так тоже думал, про LIKE и индекс с не 'C' локале,
пока Tom не привел примера локале, где индекс врет. Поэтому было принято
решение индекс запретить, хотя для KOI8 все нормально и я даже где-то
патч делал, чтобы можно было это включать. Ты хочешь этого и для  timestamp ?
Может я и ошибаюсь и всем просто влом.

>
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
---559023410-761355704-1115114200=:18597--

Re: Даты по-рус

From
"Viktor Vislobokov"
Date:
>>> Это не баг, это руки не дошли. Там не так все просто, на самом деле.
>>> Ты даже не представляешь какие есть locale ! А просто для ru_RU
>>> вкрячить
>>> хак никто не позволит.
>>
>>
>> Чего-то я в этой жизни не понимаю. Почему использование
>> СТАНДАРТНОЙ функции strftime считается кряком, хаком и
>> всем остальным? Что может быть естественнее? О соответствии
>> локали в данном случае заботится сама ОС.
>
>
> красиво говоришь. Я так тоже думал, про LIKE и индекс с не 'C' локале,
> пока Tom не привел примера локале, где индекс врет. Поэтому было принято
> решение индекс запретить, хотя для KOI8 все нормально и я даже где-то
> патч делал, чтобы можно было это включать. Ты хочешь этого и для
> timestamp ?
> Может я и ошибаюсь и всем просто влом.

Хочу. Потому что это по крайней мере позволит найти и исправить ошибку в
локали, если она там есть.

По крайней мере хорошо было бы иметь возможность переключаться с
латиницы на локализованный вывод месяцев и дней недели. Кстати по поводу
склонений. Народ в основном пользуется аббревиатурами как для месяцев
так и для дней недели. В этом случае, склонять вообще ничего не надо.

--
С уважением, Виктор



Re: Даты по-рус

From
Oleg Bartunov
Date:
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-977299526-1115192027=:18597
Content-Type: TEXT/PLAIN; charset=koi8-r; format=flowed
Content-Transfer-Encoding: 8BIT

On Wed, 4 May 2005, Viktor Vislobokov wrote:

>
>>>> Это не баг, это руки не дошли. Там не так все просто, на самом деле.
>>>> Ты даже не представляешь какие есть locale ! А просто для ru_RU вкрячить
>>>> хак никто не позволит.
>>>
>>>
>>> Чего-то я в этой жизни не понимаю. Почему использование
>>> СТАНДАРТНОЙ функции strftime считается кряком, хаком и
>>> всем остальным? Что может быть естественнее? О соответствии
>>> локали в данном случае заботится сама ОС.
>>
>>
>> красиво говоришь. Я так тоже думал, про LIKE и индекс с не 'C' локале,
>> пока Tom не привел примера локале, где индекс врет. Поэтому было принято
>> решение индекс запретить, хотя для KOI8 все нормально и я даже где-то
>> патч делал, чтобы можно было это включать. Ты хочешь этого и для  timestamp
>> ?
>> Может я и ошибаюсь и всем просто влом.
>
> Хочу. Потому что это по крайней мере позволит найти и исправить ошибку в
> локали, если она там есть.

да нет там ошибок, просто локали бывают сильно разные.

>
> По крайней мере хорошо было бы иметь возможность переключаться с
> латиницы на локализованный вывод месяцев и дней недели. Кстати по поводу
> склонений. Народ в основном пользуется аббревиатурами как для месяцев
> так и для дней недели. В этом случае, склонять вообще ничего не надо.
>

ну, Виктор, "обрезанных" решений тоже не надо. Я думаю, что тот кто задавал
этот вопрос уже давно написал функцию. Можно ведь написать на кучах
языках, в конце-концов определи свой тип 'timetzlocale', напиши соответсвующие
функции и используй CAST. А потом поделись с народом.


>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
---559023410-977299526-1115192027=:18597--