Short answer: As of DateTime v0.72 on my local machine, %c is not
directly configurable.

A little more info:

%c is hardcoded to use the locale's `datetime_format_default` (search
for "strftime_patterns" in DateTime.pm)

DateTime::Locale::ko does not override 'datetime_format_default'. Nor
does it override 'default_date_format_length', or
'default_time_format_length', both of which default to 'medium' (see
DateTime::Locale::root.)

DT:Loc:ko's "medium" date/time formats are "yyyy\.\ M\.\ d\." and "a\
h\:mm\:ss", which is why you get the output below.

So without modifying/overriding DateTime::Locale::ko, or dropping your
use of %c in favor of a custom formatter, it may be difficult to fix
your problem.

If the locale's definitions for the 'medium' formats are
wrong/outdated (see http://cldr.unicode.org/index/downloads) you could
propose an update to the locale class itself, but I am unsure of the
"official" way to do this.

-Nate

On Wed, Oct 24, 2012 at 2:36 AM, Bill Moseley <mose...@hank.org> wrote:
> We have been using formats %c, %x and %X for localizing dates based on
> Locale.   Mostly works ok, but for Korean we are getting this:
>
> 2012. 10. 18. 오후 4:09:05
>
>
> where (I've been told) we would like this format:
>
> 2012년 10월 22일 월요일 오후 01:44 PDT
>
>
> Is this formatting done in DateTime?   I'm wondering how we can set the
> default format used by %c for a given locale.
>
> In a web app what we are currently doing is
> setting DateTime->DefaultLocale() per request.  The DateTime objects are
> inflated from database rows with DBIC.
>
> --
> Bill Moseley
> mose...@hank.org

Reply via email to