【问题标题】:Joda & Android: How to format a date for display in the user's locale?Joda & Android:如何格式化日期以在用户的语言环境中显示?
【发布时间】:2015-05-09 05:33:40
【问题描述】:
我正在使用 Joda 库。
我的要求是显示的日期字符串适合用户的语言环境,即在德国设备 12.12.2014 和美国设备 2014/12/12 上。我发现我可以使用 LocalDate 的 toString() 方法。
LocalDate localDate = LocalDate.now();
localDate.toString("yyyy/MM/dd", Locale.getDefault());
如果我理解正确,我需要提供一个模式,但恕我直言,这违背了指定语言环境的目的。
有人能告诉我吗?
【问题讨论】:
标签:
android
date
locale
jodatime
datetime-format
【解决方案1】:
我的解决方案,它将格式化适合设备区域设置的显示日期:
DateTimeFormatter fmt = DateTimeFormat.mediumDate();
String str = fmt.print(localDate);
getGeburtsdatumEditText().setText(str);
【解决方案2】:
我将此代码用于生成小时和分钟的类似情况:
public String timeGenerateString( int iHour, int iMinute) {
if( (iHour < 0) || (iHour > 24)) return "";
if( (iMinute < 0) || (iMinute > 59)) return "";
if( android.text.format.DateFormat.is24HourFormat( getApplicationContext()) == true)
return "" + String.format("%02d", iHour) + ":" + String.format("%02d", iMinute);
else
if( iHour >= 13)
return "" + String.format("%02d", (iHour - 12)) + ":" + String.format("%02d", iMinute) + " PM";
else
return "" + String.format("%02d", iHour) + ":" + String.format("%02d", iMinute) + " AM";
}
也许这通常适合你。