Moh*_*Ali 26 java android simpledateformat
我需要担心这个警告吗?如果我忽略警告怎么办?
这是什么警告表示:
为了让本地格式使用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;
}
Run Code Online (Sandbox Code Playgroud)
我觉得这是如图所示日期格式以正确的方式在这里.
Val*_*ons 49
您当前正在使用SimpleDateFormat(String)构造函数.这意味着默认语言环境,并且Locale文档告诉您,要警惕默认语言环境,因为可以在各种系统上生成意外输出.
您应该使用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());
Run Code Online (Sandbox Code Playgroud)
您可以忽略它,但警告是为了让您知道对于使用不同语言的用户,日期可能会意外显示。如果您想在您自己的区域设置中强制使用该格式,请使用Locale.US(或与您的格式要求匹配的任何区域设置)。否则,请使用 getInstance() 方法之一进行本地化格式化。
| 归档时间: |
|
| 查看次数: |
12617 次 |
| 最近记录: |