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

问题描述 投票:0回答:1

我的情况:我只想将分钟和秒格式化为时钟文本格式。当我使用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);
}
android format
1个回答
3
投票

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

  1. 添加忽略注释 @SuppressLint("DefaultLocale")
  2. 显式放入Locale参数 String timeLeftFormatted = String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);
© www.soinside.com 2019 - 2024. All rights reserved.