Android:错误SimpleDateFormat未知模式字符'u'

时间:2013-11-24 17:02:50

标签: java android simpledateformat

我使用java 1.7.25 但发现了这个错误。我该怎么办?

FATAL EXCEPTION: main
java.lang.IllegalArgumentException: Unknown pattern character 'u'
        at java.text.SimpleDateFormat.validateFormat(SimpleDateFormat.java:264)
        at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:319)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:365)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:249)

这是我的代码

    public static int getDayNumberOfWeek(int day, String monthString, int yyyy) {
//http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
    int dayNumberOfWeek = 1;
    final String inputFormat = "MMM/dd/yyyy";
    final String outputFormat = "u";
    String dayString2Digit = DateTimeHelper.getTwoDigit(day);
    String inputTimeStamp = monthString + "/" + dayString2Digit + "/" + String.valueOf(yyyy);
    try {
        dayNumberOfWeek =Integer.valueOf(TimeStampConverter(inputFormat, inputTimeStamp,
                                                            outputFormat));
    }
    catch (ParseException e) {
        e.printStackTrace();
    }
    return dayNumberOfWeek;
}

3 个答案:

答案 0 :(得分:11)

  

我使用java 1.7.25

不,你没有 - 如果你在Android上运行则不行。您需要查看Android文档,而不是Java 7文档。

如果查看Android SimpleDateFormat documentation,您会看到u未列在那里。我不相信Android中的“星期几作为数字”的格式模式字符。

你真的在寻找那个吗?如果您只是希望将星期几作为一个数字(没有其他任何东西),您可以随时使用

String text = String.valueOf(calendar.get(Calendar.DAY_OF_WEEK));

答案 1 :(得分:0)

如果您使用的是Android,那么您就不会使用Java 1.7.25。请参阅android documentation:SimpleDateFormat中不支持u

答案 2 :(得分:0)

我猜你的问题将出现在TimeStampConverter课程中,你将{u“作为outputFormat传递给你。 “u”不是SimpleDateFormat中的有效格式字符,您必须构建包含它的格式字符串。

如果您需要将“u”用作文字,则需要将其用单引号括起来。