编程语言
首页 > 编程语言> > java – AM / PM的Android DateFormat因设备而异

java – AM / PM的Android DateFormat因设备而异

作者:互联网

我正在格式化这样的日期:

    public static String toFormattedDate(@NonNull Time time, String toFormat) {
        mDateFormat = new SimpleDateFormat(toFormat);

        Date date = new Date();
        date.setTime(time.toMillis(true));

        return mDateFormat.format(date);
    }

我使用的格式是:

    public static final String TIME = "hh:mm a";

但它在我用于测试的两个设备之间有所不同……

Nexus 10:
Nexus 10

Nexus 5X:
Nexus 5X

如何在设备之间统一格式化?

解决方法:

您可能必须使用24小时值来确定要追加的内容,以便您可以添加所需的格式.

public static final String TIME = "hh:mm";

然后

String ampm = Integer.parseInt(time.valueOf("hh")) >= 12 ? "PM" : "AM";
...
return mDateFormat.format(date)+" "+ampm;

或者,如果你感到懒惰,你可以不改变TIME的值:

return mDateFormat.format(date).toUpperCase().replace(".","");

标签:java,android,date-format,simpledateformat,android-date
来源: https://codeday.me/bug/20190623/1269007.html