【发布时间】:2016-06-16 02:33:47
【问题描述】:
在我的应用程序中,我从 Web 服务接收格式为 yyyy-MM-dd(例如 2016-03-05)的日期,我需要将它们格式化为 [abbreviated month] [date],例如Mar 5。此外,我有一个开始日期和结束日期,并希望将它们显示为一个日期范围,除非两个日期相同。
目前我正在使用DateUtils.formatDateRange(),它应该满足我的要求并提供适当的本地化,但我遇到了两个问题:
如果我的结束日期是开始日期的后一天,
formatDateRange()仅显示格式化的开始日期。例如,如果开始日期是2016-03-05,结束日期为2016-03-06,该方法返回Mar 5(但它应该是Mar 5 - Mar 6)。为什么会这样?当结束日期在同一个月时,月份不显示。例如,如果开始日期是
2016-03-05并且结束日期是2016-03-12,方法返回Mar 5 - 12。有没有办法让它显示Mar 5 - Mar 12?
这是我的代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startDate, endDate;
try {
startDate = sdf.parse(startDateString);
endDate = sdf.parse(endDateString);
} catch (ParseException ignored) {
return null;
}
int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_MONTH;
return DateUtils.formatDateRange(context, startDate.getTime(), endDate.getTime(), flags);
【问题讨论】:
标签: android date simpledateformat date-formatting android-dateutils