cam*_*ode 3 java android simpledateformat
我正在使用SimpleDateFormat类来获取这样的当前年份
SimpleDateFormat currentYear = new SimpleDateFormat("YYYY");
Date thisYear = new Date();
String stringThisYear = currentYear .format(thisYear );
Run Code Online (Sandbox Code Playgroud)
它在这里(印度)工作正常,但是在其他人在马来西亚运行时崩溃了。经过大量调试和搜索,我发现由于没有提及语言环境而发生了问题,因此我将代码更改为此
SimpleDateFormat currentDate = new SimpleDateFormat("YYYY", Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)
仍然很崩溃,所以我使用日历实例来获取这样的当前年份
int thisYear=Calendar.getInstance().get(Calendar.YEAR);
Run Code Online (Sandbox Code Playgroud)
但是我想知道simpleDateFormat是什么问题,因为我的大多数代码已经具有simpleDateFormat类。所以我想知道崩溃的原因,如果有人有解决方案,请帮助我。谢谢
这是因为您必须使用“ yyyy”而不是“ YYYY”
在旧版本的Android上,使用“ YYYY”会使您的应用崩溃。与国家/地区无关
“ Y”代表星期年份,而不是Javadoc中指定的年份
编辑2
更多信息在这里
yyyy是用于标识SimpleDateFormat类中年份的模式字符串。
Java 7引入了YYYY作为新的日期模式,以标识星期几。
平均一年正好是52.1775周,这意味着考虑到不可分割的周数,一年最终可能有52周或53周。
在格式化日期时意外使用YYYY可能会在Java应用程序中引起严重问题。
如@ OleV.V。所述,该格式Y仅在Android API 24+上受支持。使用低于API 24的任何版本都会导致应用崩溃。
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |