Android AM/PM 的日期格式因设备而异

Android DateFormat for AM/PM differs between devices

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

    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";

但我用于测试的两个设备之间存在差异...

联系 10:

连结 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(".","");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String currentDateandTime = sdf.format(new Date());