我是否需要担心此警告?如果我忽略该警告怎么办?
这是什么警告表示:
为了让本地格式使用getDateInstance()
,getDateTimeInstance()
或getTimeInstance()
,或使用new SimpleDateFormat(String template, Locale locale)
与例如Locale.US
用于ASCII
日期。
在下面的代码的第二行。该应用程序可以正常工作的代码。我想显示日期,例如19 Nov 2014
。
public static String getFormattedDate(long calendarTimeInMilliseconds) {
SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy"); //ON THIS LINE
Date now = new Date();
now.setTime(calendarTimeInMilliseconds);
String strDate = sdfDate.format(now);
return strDate;
}
我觉得这是如图所示的正确的方式来格式化日期这里。
您当前正在使用SimpleDateFormat(String)构造函数。这意味着使用默认语言环境,并且正如“语言环境”文档告诉您的那样,请警惕默认语言环境,因为可能在各种系统上产生意外的输出。
您应该改用SimpleDateFormat(String,Locale)构造函数。它将接受一个附加参数-您要使用的语言环境。如果要确保输出以一致的方式是机器可读的(无论用户的实际语言环境如何,总是看起来相同),则可以选择Locale.US。如果您不关心计算机的可复制性,则可以将其显式设置为使用Locale.getDefault()。
在示例代码中使用这些代码将如下所示:
// for US
SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy", Locale.US);
// or for default
SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy",
Locale.getDefault());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句