2016-05-18 112 views
3

我設置日期格式是這樣的:的AM/PM的Android日期格式的設備之間的區別

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

如何在設備間統一格式化?

+0

有關解決方法,我只是使用的字符串。替換(「am」,「AM」)。replace(「pm」,「PM」)但我想知道我是否可以通過格式化來解決這個問題,而不是通過字符串操作。 –

+0

設置爲查看時,將該日期值更改爲「UPPER CASE」。 – Bharatesh

+0

@skadoosh已經做到了。我遵循了接受的答案。謝謝! –

回答

2

您可能必須使用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(".",""); 
0
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
String currentDateandTime = sdf.format(new Date()); 
+0

我已經嘗試了aa,但仍然返回「a.m.」和「下午」。 –

+0

我已經更新了我的24小時制答案。 –

+0

Nexus 10和Nexus 5X之間仍然存在差異。 Nexus 10將其格式化爲「AM」或「PM」,而Nexus 5X將其格式化爲「a.m.」或「下午」。我想我只需要手動格式化這個。 –