乔达& Android:如何格式化用户区域设置中显示的日期?

时间:2015-03-07 18:49:04

标签: android date locale jodatime datetime-format

我正在使用Joda库。 我的要求是显示的日期字符串适用于用户的语言环境,即德国设备12.12.2014和美国设备2014/12/12。我发现我可以使用LocalDate的toString()方法。

LocalDate localDate = LocalDate.now();
localDate.toString("yyyy/MM/dd", Locale.getDefault());

如果我理解正确,我需要提供一种模式,但是恕我直言,这就失去了指定语言环境的目的。

任何人都可以启发我吗?

2 个答案:

答案 0 :(得分:3)

我的解决方案,它将格式化适用于设备区域设置的显示日期:

        DateTimeFormatter fmt = DateTimeFormat.mediumDate();
        String str = fmt.print(localDate);
        getGeburtsdatumEditText().setText(str);

答案 1 :(得分:-1)

我将此代码用于生成小时和分钟的类似情况:

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

可能这通常适合你。