2013-11-24 61 views
2

我使用java 1.7.25 ,但發現此錯誤。我該怎麼辦?Android:Error SimpleDateFormat未知模式字符'u'

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; 
} 
+1

你試圖解析哪個字符串,你使用了哪種格式?你確定你沒有使用舊的Java版本嗎? –

+1

你有任何聲明你在你的程序 –

+1

請給我們一些代碼。你有沒有忘記反斜槓? – Izmaki

回答

11

我用java 1.7.25

不,你不 - 不,如果你運行在Android上。您需要查看Android文檔,而不是Java 7文檔。

如果你看看Android SimpleDateFormat documentation,你會發現u沒有在那裏列出。我不相信Android中的「星期幾作爲數字」有格式模式。

你真的在找那個嗎?如果你只是一週中的一天,一個數(不包括其他東西),你可以隨時使用

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

是的,我已經看到了。但爲什麼我不能使用java 1.7的強大功能呢? – UmAnusorn

+1

@ um.anusorn:因爲你使用的是Android,它不能運行Java 1.7,所以就這麼簡單。 –

+0

好吧,我明白了。謝謝 – UmAnusorn

0

如果您使用的Android,那麼你就不能使用Java 1.7.25。請參閱android documentation:SimpleDateFormat中不支持u

0

我猜你的問題是要在你的TimeStampConverter類你傳遞在那「u」作爲outputFormat。 「u」不是SimpleDateFormat中的有效格式字符,您必須構造一個包含它的格式字符串。

如果您需要使用「u」作爲文字,您需要用單引號括起來。