私はJoda Timeを使用しており、ユーザーの希望の形式(note that before Android M, the format could be changed)で日付を表示する必要があります。 Aジョダ日時は希望日付形式の文字列から作成されてDateTimeFormatter、使用してフォーマットすることができ書式JodaTime DateTime優先DateFormatを使用
:
:public String getFormattedDate(String datePattern) {
if (mDate != null) {
// get your local timezone
DateTimeZone localTZ = DateTimeZone.getDefault();
DateTime dt = mDate.toDateTime(localTZ);
DateTimeFormatter fmt = DateTimeFormat.forPattern(datePattern);
String formattedDate = dt.toString(fmt);
return formattedDate;
}
return "";
}
が、ユーザの好みのフォーマットを取得するには、JavaにDateFormatを使用する必要があります
public static DateFormat getPreferredDateFormat(Context context) {
final String format = Settings.System.getString(context.getContentResolver(), Settings.System.DATE_FORMAT);
DateFormat dateFormat;
if (android.text.TextUtils.isEmpty(format)) {
dateFormat = android.text.format.DateFormat.getMediumDateFormat(context.getApplicationContext());
} else {
dateFormat = android.text.format.DateFormat.getDateFormat(context.getApplicationContext()); // Gets system date format
}
if (dateFormat == null)
dateFormat = new SimpleDateFormat(format);
return dateFormat;
}
Java DateFormatには、日付形式のStringを与えるメソッドがありません。
Java DateFormatを使用してJoda DateTimeをフォーマットする方法はありますか?また、曜日と月だけを表示したいと指定することもできます(dd/MMまたはMM/ddになります)。または、DateTimeFormatterをユーザーの好みの形式にするには?