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