格式化时间的正确方法是什么,以便Lint不会抱怨隐式使用默认语言环境?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了格式化时间的正确方法是什么,以便Lint不会抱怨隐式使用默认语言环境?相关的知识,希望对你有一定的参考价值。
我的情况:我只想将分钟和秒格式化为时钟文本格式。当我使用String.format时,我得到警告“隐式使用默认语言环境是bug的常见来源”
我该怎么办呢?我是否必须添加Locale.US或者我可以忽略它吗?我很困惑因为没有回答我看到有人使用String.format(Locale.US,...)
private void updateCountDownText() {
int minutes = (int) (mTimeLeftInMillis / 1000) / 60;
int seconds = (int) (mTimeLeftInMillis / 1000) % 60;
String timeLeftFormatted = String.format("%02d:%02d", minutes, seconds);
mTextViewCountDown.setText(timeLeftFormatted);
}
答案
这只是一个警告,而不是一个错误。出现此警告的原因是,对于不同的语言环境,在极少数情况下,相同的操作可能会导致不同的结果。你必须有选项让这个警告消失:
- 添加忽略注释
@SuppressLint("DefaultLocale")
- 显式放入Locale参数
String timeLeftFormatted = String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);
以上是关于格式化时间的正确方法是什么,以便Lint不会抱怨隐式使用默认语言环境?的主要内容,如果未能解决你的问题,请参考以下文章