Android:错误SimpleDateFormat未知模式字符’u’
我使用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.(SimpleDateFormat.java:365) at java.text.SimpleDateFormat.(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; }
我用的是java 1.7.25
不,你没有 – 如果你在Android上运行则不行。 您需要查看Android文档,而不是Java 7文档。
如果你查看Android SimpleDateFormat
文档,你会发现u
没有在那里列出。 我不相信Android中“星期几作为数字”的格式模式字符。
你真的在寻找那个吗? 如果您只想将星期几作为数字(没有其他任何东西),您可以随时使用
String text = String.valueOf(calendar.get(Calendar.DAY_OF_WEEK));
如果您使用的是android,那么您就不使用Java 1.7.25了。 请参阅android文档 :在SimpleDateFormat中不支持u
。
我猜你的问题将出现在你的TimeStampConverter
类中,你传递的是“u”作为outputFormat
。 “u”不是SimpleDateFormat
的有效格式字符,您必须构造包含它的格式字符串。
如果您需要将“u”用作文字,则需要将其用单引号括起来。