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

DateFormatSymbols.getShortMonths gives long months with Finnish locale

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • 9
    • 8u40, 9
    • core-libs

      FULL PRODUCT VERSION :
      java version "1.8.0_40"
      Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
      Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Darwin 14.1.0 Darwin Kernel Version 14.1.0: Thu Feb 26 19:26:47 PST 2015; root:xnu-2782.10.73~1/RELEASE_X86_64 x86_64

      A DESCRIPTION OF THE PROBLEM :
      DateFormatSymbols.getShortMonths should give short month names (Jan vs. the longer January), but in the Finnish locale ("fi, "FI") it gives the long month name in a strange format:
      "January" in Finnish is "tammikuu",
      the short month name "Jan" is "tammi",
      but instead that Java 8 returns "tammikuuta", which means approximately "of January" and is usable when formatting dates like "1st of January".


      REGRESSION. Last worked in version 7u71

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.7.0_71"
      Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
      Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run this snippet:

      import java.util.Locale;
      import java.text.DateFormatSymbols;

      public class Test {
          public static void main(String [] args) {
              System.out.println(new DateFormatSymbols(new Locale("fi", "FI")).getShortMonths()[0]);
          }
      }


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      In Java 7, the result is "tammi".
      ACTUAL -
      In Java 8, the result is "tammikuuta".

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.util.Locale;
      import java.text.DateFormatSymbols;

      public class Test {
          public static void main(String [] args) {
              System.out.println(new DateFormatSymbols(new Locale("fi", "FI")).getShortMonths()[0]);
          }
      }

      ---------- END SOURCE ----------

            rgoel Rachna Goel (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: