Android 4.3 Jelly Bean时间格式问题

6

我的日期格式是"yyyy-MM-dd",当我使用这个函数获取月份时,它返回错误的月份格式。例如,它只返回“J”而不是“July”。

以下是该函数:

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();
        }
    }

你使用的是哪种文化? - Jon Skeet
永远不要依赖默认编码和默认语言环境。绝对不要这样做。当解析日期(甚至浮点数,因为小数点可能不同)时,您应该始终明确指定正确的格式。 - ppeterka
我正在使用默认语言环境。 - Ali Imran
这个函数需要什么补丁? - Ali Imran
这个问题是在我将Nexus 7更新到4.3操作系统后出现的。 - Ali Imran
显示剩余2条评论
1个回答

5

我觉得你多了一个M

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


是的,这就是问题所在。但是这里有SimpleDateFormat的文档,你可以看到有五个'M':http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html - Ali Imran
1
在Android文档中,Yeah but: M:1.....MMMMM:J表示http://developer.android.com/reference/java/text/SimpleDateFormat.html。 - Flaxie
2
五个计数模式(例如“MMMMM”)用于字段的最短非数字表示法,是在Jelly Bean MR2(API级别18)中引入的。 - Flaxie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接