Java ';Calendar.getDisplayName';给予';非法辩论例外';与';未知来源';
问题-我的应用程序在数百台计算机的生产环境中使用。在安装了一些新计算机后,发现我的应用程序只在新计算机上崩溃,问题就出现了。新的计算机附带了JavaV8U5,为了解决这个问题,我还安装了v7u55(我认为这可能是版本控制问题)。 注意*我正在使用JDKV7U45进行编译** 根本原因-失败的代码是对 失败的代码:Java ';Calendar.getDisplayName';给予';非法辩论例外';与';未知来源';,java,calendar,illegalargumentexception,Java,Calendar,Illegalargumentexception,问题-我的应用程序在数百台计算机的生产环境中使用。在安装了一些新计算机后,发现我的应用程序只在新计算机上崩溃,问题就出现了。新的计算机附带了JavaV8U5,为了解决这个问题,我还安装了v7u55(我认为这可能是版本控制问题)。 注意*我正在使用JDKV7U45进行编译** 根本原因-失败的代码是对 失败的代码: System.out.println("Getting calendar instance"); Calendar instanceCalendarOb
System.out.println("Getting calendar instance");
Calendar instanceCalendarObj = Calendar.getInstance();
String date = instanceCalendarObj.getDisplayName(Calendar.MONTH, 0, Locale.ENGLISH);
date = date.concat(" "+String.valueOf(instanceCalendarObj.get(Calendar.DAY_OF_MONTH)));
date = date.concat(", "+String.valueOf(instanceCalendarObj.get(Calendar.YEAR)));
JOptionPane.showMessageDialog(this, date);
错误消息:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException
at java.util.Calendar.checkDisplayNameParams(Unknown Source)
at java.util.Calendar.getDisplayName(Unknown Source)
任何帮助都将不胜感激,即使这只是一种解决方法。您将错误的参数传递给
getDisplayName()
方法
第二个参数是样式,其可能值为Calendar.SHORT
和Calendar.LONG
。使用这些常量,如下所示:
Calendar c = Calendar.getInstance();
c.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.ENGLISH);
c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH);
顺便说一句,
Calendar.SHORT
和Calendar.LONG
的常量值分别为1和2(您在代码中传递了0)。但始终使用常量名称,而不是它们的值 我对你感激不尽;我终于可以把这个键盘从我面前拿出来了