Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4207993

RFE: Date formatting should support embedded forms of month names

XMLWordPrintable

    • x86
    • windows_95, windows_nt, windows_2000, windows_xp

      Name: gsC80088 Date: 02/02/99


      When displaying long dates, i. e. forms where the
      months of the year are spelled out, the results
      are incorrect for several important languages.
      It looks as if the support in this area repeats
      the same mistakes made by early versions of
      Windows NT.

      The problems are mainly in languages such as
      Russian, Czech, Polish, etc. which are declined
      languages. Let me give an example. Since I
      can't do this in Russian in this web page, I'll
      use an equivalent one from Czech.

      Let's look at the date January 1, 1998, as we
      would write it in English. In Czech the word for
      January is leden (which is derived from the word
      for 'ice'). This is the nominative case. The
      problem is that there are six more forms that
      this word can have.

      What Java is doing is to write this as

      1. leden 1998

      In other words, the form assumes that the
      name of the month is in the nominative case.
      But, it must be in the genitive case (the 'of'
      case). So this must be written as

      1. ledna 1998

      So, this is read as 'the first OF January 1998.

      The rules for adding endings depend on the gender
      of the noun and whether the ending is a soft
      or hard consonant. Worse, the rules change from
      one language to the next.

      The same problem exists for the rest of the
      months in Czech, Polish, and Russian, and
      possibly for Belarus, Serbian, Croatian,
      Slovenian, and Slovak. Other declined languages
      are Hungarian, Romanian, and Finnish, but I think
      these can be handled more easily. For example,
      Finnish uses a partitive case for dates (one
      possibility) and this ending is uniform.

      If you want to respect local cultural conventions,
      which is the goal of I18N, this needs to be fixed.

      I think you would go crazy trying to write code
      that declines nouns. Win32 took a different tack,
      and that is to store the genitive case forms of
      the months in their calendar information. You can
      read them by EnumCalendarInfo.
      (Review ID: 35672)
      ======================================================================

      Name: gsC80088 Date: 03/16/99


      The word for month name "May" in Russian has different
      last character according to context.
      When I display such a sentence:

      Valid from May 1, 1997 to May 1, 2001

      where the date string is generated from DateFormat
      and Date class with an input of number of seconds.

      The Russian date string from the same code will give
      the normal "May" translation from the JDK source file

      LocaleElements_ru.java as

      "\u043C\u0430\u044F"

      Our Russian tester points out that the last byte should
      be different in the above sentences.
      ======================================================================
      ###@###.### 11/5/04 00:50 GMT

            okutsu Masayoshi Okutsu
            gstone Greg Stone
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: