我想将日期字符串格式化为没有年份(例如:" 1/4")。
int flags = DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_NO_YEAR;
以上标志仍然附加一年的日期(例如:" 2016年1月4日和#34;)。我该如何放弃这一年?
答案 0 :(得分:3)
似乎4.4 Android版本之后日期格式发生了变化:
对于4.1 Android版本conventions for command names上升到DateUtils.formatDateTime,其中字符串使用Formatter格式化。
但是从4.4 Android版本DateUtils.formatDateRange使用libcore.icu.DateIntervalFormat
格式化字符串。
public static Formatter formatDateRange(Context context, Formatter formatter, long startMillis,
long endMillis, int flags, String timeZone) {
// If we're being asked to format a time without being explicitly told whether to use
// the 12- or 24-hour clock, icu4c will fall back to the locale's preferred 12/24 format,
// but we want to fall back to the user's preference.
if ((flags & (FORMAT_SHOW_TIME | FORMAT_12HOUR | FORMAT_24HOUR)) == FORMAT_SHOW_TIME) {
flags |= DateFormat.is24HourFormat(context) ? FORMAT_24HOUR : FORMAT_12HOUR;
}
String range = DateIntervalFormat.formatDateRange(startMillis, endMillis, flags, timeZone);
try {
formatter.out().append(range);
} catch (IOException impossible) {
throw new AssertionError(impossible);
}
return formatter;
}
因此,您必须修剪结果字符串或使用DateFormat / SimpleDateFormat删除4.1 Android上的年份字段。
答案 1 :(得分:1)
这对我很有用
andReturn
答案 2 :(得分:1)
尝试使用SimpleDateFromat。像这样:
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("MM/dd");
String dateString = df.format(date);