SimpleDateFormat中的“ L”字符模式

| 我可以尝试在模式中使用\'L \'字符(http://developer.android.com/reference/java/text/SimpleDateFormat.html):
SimpleDateFormat sdf2 = new SimpleDateFormat(\"d LLLL y \'г\'. H:mm:ss z\", new Locale(\"ru\", \"RU\"));
但我得到这个例外:
java.lang.IllegalArgumentException: Unknown pattern character - \'L\'
有什么想法,为什么会发生?
已邀请:
Android 2.2及更低版本似乎不支持L字符模式。在寻找斯拉夫语中日期格式的解决方案时,我发现了相同的问题(请参阅我对XtopherSD答案的评论)。我最终有条件地编码了格式:
String fmt = Build.VERSION.SDK_INT <= 8 ? \"MMMM yyyy\" : \"LLLL yyyy\";
SimpleDateFormat sdfDate = new SimpleDateFormat(fmt);
当然,我当时正在使用API​​级别16的模拟设备进行开发,一切正常。当我尝试在API级别7仿真的设备上运行它时,出现了相同的错误。 SimpleDateFormat的手册页http://developer.android.com/reference/java/text/SimpleDateFormat.html上说\“ L \”对月份有效。它还说“ M”有效。 我变了 :
private static SimpleDateFormat sdf_myDate = new SimpleDateFormat(\"LLLL d yyyy HHmm\", Locale.US);
至 :
private static SimpleDateFormat sdf_myDate= new SimpleDateFormat(\"MMMM d yyyy HHmm\", Locale.US);
并且可以在API 7和16上使用。
我有同样的问题,但是使用\'A \'字符,在查看SimpleDateFormat API之后,没有\'A \'模式字母,只有\'a \'。当我更改为\'a \'模式字母时,它可以正常工作。我也看不到您的\'L \'模式字母,所以可能是问题所在。 在这里看看 希望这对您有所帮助。

要回复问题请先登录注册