AM / PM的Android DateFormat因设备

时间:2016-05-18 02:35:33

标签: 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";

但是我用于测试的两个设备之间有所不同......

Nexus 10: Nexus 10

Nexus 5X: Nexus 5X

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

2 个答案:

答案 0 :(得分:4)

您可能必须使用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(".","");

答案 1 :(得分:0)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String currentDateandTime = sdf.format(new Date());