Re: Where are the legal values for LC_TIME listed?

From: Bryn Llewellyn <bryn(at)yugabyte(dot)com>
To: Tom Lane PostgreSQL <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Pg Docs <pgsql-docs(at)lists(dot)postgresql(dot)org>
Subject: Re: Where are the legal values for LC_TIME listed?
Date: 2021-05-17 19:10:53
Message-ID: 0231FAB9-2B88-4DEA-8462-E8ABEF6BE258@yugabyte.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

tgl(at)sss(dot)pgh(dot)pa(dot)us wrote:

> Bryn wrote:
>
>> It’s easy to guess values for, say, countries in Europe:
>
> On Unix-ish systems, "locale -a" should provide the set of available values. We don't attempt to document this because it's so installation-dependent.
>
>> But what do I use for, say, Simplified Chinese?
>
> Maybe you don't have a suitable locale installed.
>
>> The obvious search (LC_TIME in the search box of the PG doc for the current version) gets no useful hits.
>
> The main entry for lc_time in
>
> 19.11.2. Locale and Formatting: https://www.postgresql.org/docs/current/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-FORMAT
>
> says “Acceptable values are system-dependent; see Section 23.1 for more information", and if you follow that link, you'll read
>
> What locales are available on your system under what names depends on what was provided by the operating system vendor and what was
> installed. On most Unix systems, the command `locale -a` will provide a list of available locales.
>
> Not sure what more we could say.

Thanks for the quick reply, Tom. `locale -a` showed that I do have a suitable locale installed. When I add an extra paragraph to my code that starts with `set lc_time = 'zh_CN’;`, I get this:

星期一 / 九月
一 03- 9-1042 12:00:00.543216 BC

What looks like an m-dash is actually the Chinese character for “one” as in “星期一” (lit. “week-one” which is the convention they adopted when they adopted the Western Calendar). Had I picked Friday (“星期五”) the output would have been nicer.

About “ Not sure what more we could say”, no… I don’t suppose there’s a cost-effective next step. In an ideal world, you’d have O/S-dependent code that reads the output of `locale -a`, sanitizes it to get the legal arguments for `set lc_time`, and presents it as a relation.

My problem is that doc search only gets me so far. Then I have to read each whole page from top to bottom to find the nuggets—in this case “ Acceptable values are system-dependent”.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message PG Doc comments form 2021-05-17 20:07:02 Error building for 64-bit Windows (10)
Previous Message Tom Lane 2021-05-17 18:09:31 Re: Where are the legal values for LC_TIME listed?