2013-07-31 33 views
6

我的日期格式是这个“yyyy-MM-dd”,当我得到使用这个函数的月份时,它返回了我错误的月份格式。例如,而不是“七一”还给我唯一的“J”Android 4.3 jelly Bean时间格式问题

这里是功能:

public static String getMonthName(String date) { 

    Date mDate = Utils.parseDate(date); 
    SimpleDateFormat sdf = new SimpleDateFormat("MMMMM"); 
    String time = sdf.format(mDate); 
    return time; 

} 

安迪知道该怎么做?

编辑: 这里是我parseDate(String date)功能

public static Date parseDate(String date) { 
     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
     try { 
      return formatter.parse(date); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
      return new Date(); 
     } 
    } 
+0

你在用什么文化? –

+0

**从不**依赖默认编码和默认语言环境。 **从来没有。**解析日期(或甚至浮点数,因为小数可能不同),你应该**总是**明确指定正确的格式。 – ppeterka

+0

我正在使用默认语言环境 –

回答

5

我认为你有一个M得多

M:1 MM:01 MMM:一月 MMMM:一月 MMMMM: J

+0

是的,这是问题所在。 ;)但这里是simpledateformat的文档,你可以看到那里有五个'M':_ http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html –

+1

是的,但是:M:1 ..... MMMMM:J在Android文档中http://developer.android.com/reference/java/text/SimpleDateFormat.html – Flaxie

+2

五个统计模式(例如“MMMMM”)用于Jelly Bean MR2(API等级18)中引入了字段的最短非数字表示。 – Flaxie