似乎有很多方法可以在Android中格式化日期和时间 - 但没有一种方法可以按照我想要的方式进行格式化;-)
我能找到的方法涉及Locale(直接或间接) - 但正确的方法必须是使用用户在“设置 - 日期和时间”中配置的内容。
使用例如:
String res = java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.SHORT, java.text.DateFormat.MEDIUM).format(date);
Log.d("", res);
日志:4/9/13 12:11:34 PM
和
res = android.text.format.DateUtils.formatDateTime(getActivity(), date.getTime(), android.text.format.DateUtils.FORMAT_SHOW_TIME | android.text.format.DateUtils.FORMAT_SHOW_DATE | android.text.format.DateUtils.FORMAT_SHOW_YEAR);
Log.d("", res);
日志:2013年4月9日12:11
但这不是它的配置方式,当我查看文件的日期和时间时,它被写为:09/04/2013 12:11
那么如何获取“设置 - 日期和时间”中配置的格式化字符串(如“yyyy-MM-dd”和“HH:mm”),或者如何获取根据这些规则格式化的日期?
答案 0 :(得分:2)
尝试使用以下代码:
public static String convertDateToUserFormat(final Date inputDate) {
if (inputDate != null) {
return getDateFormat().format(inputDate);
}
return null;
}
private static DateFormat getDateFormat() {
final String format = Settings.System.getString(context.getContentResolver(),
Settings.System.DATE_FORMAT);
if (TextUtils.isEmpty(format)) {
return android.text.format.DateFormat
.getDateFormat(context);
}
return new SimpleDateFormat(format);
}
答案 1 :(得分:1)
Format dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
formattedDate = formatter.parse(yourDateString);
有关DateFormatter check out the developer doc
的更多信息答案 2 :(得分:-1)
这是日期格式的例子
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date();
System.out.println("format 1 " + sdf.format(date));
sdf.applyPattern("E MMM dd yyyy");
System.out.println("format 2 " + sdf.format(date));
您可以点击此链接获取更多信息enter link description here