格式化时间的正确方法是什么,以便Lint不会抱怨隐式使用默认语言环境?

时间:2017-12-17 14:25:01

标签: android format

我的情况: 我只想将分钟和秒格式化为时钟文本格式。 当我使用String.format时,我收到警告 "隐式使用默认语言环境是错误的常见来源"

我该怎么办呢?我是否必须添加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);
}

1 个答案:

答案 0 :(得分:3)

这只是一个警告而不是错误。出现此警告的原因是,对于不同的语言环境,在极少数情况下,相同的操作可能会导致不同的结果。您必须选择使此警告消失:

  1. 添加忽略注释

    @SuppressLint("DefaultLocale")
    
  2. 显式放置Locale参数

    String timeLeftFormatted = String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);