Issue:直接使用SimpleDateFormat而不使用显式区域设置Id:SimpleDateFormat
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");为什么“获取本地格式化使用getDateInstance()、getDateTimeInstance()或getTimeInstance(),或者使用新SimpleDateFormat(String template,Locale locale),例如,为ASCII 使用Locale.US”错误出现在这一行。
http://developer.android.com/reference/java/text/SimpleDateFormat.html
发布于 2013-07-23 10:49:30
要删除警告,只需添加Locale.getDefault()作为第二个参数,同时实例化日期格式对象。例如:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
java.util.Locale.getDefault());发布于 2015-06-30 07:25:52
但是要小心getDefault,因为它可能不适合所有用例,特别是机器可读的输出。来自文档
默认的区域设置不适合机器可读的输出。最好的选择通常是Locale.US --这个地方保证在所有设备上都可以使用,而且它没有什么奇怪的特例,而且经常被使用(特别是在计算机与计算机之间的通信中),这意味着它也是最有效的选择。
发布于 2015-11-12 23:48:06
这是个愚蠢的警告。如果查看SimpleDateFormat构造函数源代码,它将获得默认的区域设置。
public SimpleDateFormat(String pattern) {
this(pattern, Locale.getDefault());
}因此,将其添加到代码中是多余的,不必要地冗长。Locale.getDefault()几乎总是您想要的,因为这是用户的设备设置的内容。如果出于某种原因,您需要它始终返回,例如,“星期一”,无论用户的语言设置为什么,都不能指定Locale.US,但这似乎是一种罕见的情况。
最好的办法就是让哑巴检查无效。
https://stackoverflow.com/questions/17807777
复制相似问题