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

标签 java android date-format simpledateformat android-date

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

    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: Nexus 10

连结 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 - AM/PM 的 Android DateFormat 因设备而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37289298/

相关文章:

mysql - 在 MySQL 中将日期重新格式化为数字 MDY 值

java - Java中如何增加int值?

javascript - CSS 溢出后退?

android - 如何禁用/删除android Activity 标签和标签栏?

android - 使用 weakReference 和 WakHasMap Android 位图

php - 使用 PHP 在 MySQL 中保存意外时间格式的最安全方法

javascript - Extjs 4.2.1 XTemplate 子元素的日期格式仅在 IE 上显示 NaN

java - 如何从静态上下文引用非静态方法 'findViewById'?

java - 为什么我无法让注入(inject)发挥作用?

java - Kotlin 中的 Try-catch block ——返回什么