SimpleDateFormat(string模板,语言环境语言环境),例如用于ASCIIdate的Locale.US

Issue :直接使用SimpleDateFormat而不显示区域设置Id :SimpleDateFormat

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

为什么是“ 使用getDateInstance(),getDateTimeInstance()或getTimeInstance()获取本地格式,或者使用新的SimpleDateFormat(String模板,Locale语言环境),例如对于ASCIIdate为Locale.US “的错误。

http://developer.android.com/reference/java/text/SimpleDateFormat.html

要删除警告,只需在实例化date格式对象时添加Locale.getDefault()作为第二个参数。 例如。

  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.getDefault()); 

小心getDefault ,因为它可能不适合所有的用例,特别是机器可读的输出。 从文档 :

默认语言环境不适用于机器可读的输出。 最好的select通常是Locale.US – 这个语言环境保证在所有的设备上都可用,事实上它并没有令人吃惊的特殊情况,而且经常使用(尤其是计算机与计算机通信)意味着它往往是也是最有效的select。

这是一个愚蠢的皮棉警告。 如果您查看SimpleDateFormat构造函数源代码,它将获取默认语言环境。

 public SimpleDateFormat(String pattern) { this(pattern, Locale.getDefault()); } 

因此,将它添加到代码中是多余的,不必要的冗长。 Locale.getDefault()几乎总是你想要的,因为这是用户的设备设置。 如果由于某种原因,你需要它总是返回,例如,“星期一”,不pipe用户的语言设置为什么比你可以指定Locale.US,但这似乎是一个罕见的情况。

最好的办法是禁用愚蠢的检查。