I sent this by e-mail previously but forgot to submit a Jitterbug.
iCal uses the following formats which they cannot generate from the existing ICU
locale data:
- (NSString*)localizedLongDateWithoutDay; // décembre 2001
- (NSString*)localizedAbbrevDateWithoutDay; // dec 2001
- (NSString*)localizedLongDateWithoutYear; // Vendredi 14 décembre, 02 de
janeiro
- (NSString*)localizedAbbrevDateWithoutYear; // Ven 14 dec, 02 de jan
- (NSString*)localizedShortDateWithoutYear; // 14/12, 14.12
- (NSString*)localizedLongDayMonthWithoutDayOfWeek; // 14 décembre
- (NSString*)localizedAbbrevDayMonthWithoutDayOfWeek; // 14 dec
- (NSString*)localizedLongDayOfWeekWithDayOfMonthFormat; // Jeudi 15
- (NSString*)localizedAbbrevDayOfWeekWithDayOfMonthFormat; // Jeu 15
- (NSString*)localizedOneCharacterAbbrevDayOfWeek; // J,M
- (NSString*)localizedHourMinutesWithoutAMPM; // 20:30 or 08:30 or 8:30 (or
04:10 or 4:10)
- (NSString*)localizedHourMinutes; // 20:30 or 08:30 pm or 8:30 pm (or 4:10 or
04:10 or 4:10 am or 04:10 am)
- (NSString*)localizedHourWithoutAMPM; // 08 or 8 or 20 (or 4 or 04)
- (NSString*)localizedHour; // 20 or 08 pm or 8 pm (or 4 or 04 or 4 am or 04
am)
The menu bar clock has a similar issue of needing a localized date/time format
which does not fit one of the existing ones.
One approach is to add a zillion new format strings to each locale; another is
to try to come up with a way to reliably extract this information. The menu bar
clock's problem would be solved if it could pass format strings separately for
the date and time, and use the locale data for the ordering of the date and time
parts.
For example, if you could say:
I want the date to be the abbreviated day of the week, the time to have seconds,
and the order of the two to be whatever the locale specifies.
To summarize, right now there are four prepackaged date formats and four
prepackaged time formats. I think the best way to address this issue would be to
allow you to specify which pieces you want to appear in the date format and
which pieces you want in the time format (e.g., don't want year, do want
seconds, don't want time zone, etc.).