在 java 中,我有两个包含日期和时间的日历对象。两个日历对象都在同一天,但时间不同。如何将其格式化为如下示例:
2013 年 11 月 8 日星期三 10:00-11:00
谢谢。
您应该使用 aSimpleDateFormat
来执行此操作,这是文档和示例:
String dFormat = "EEEE, MMMM d, yyyy",
tFormat = "KK:mm a";
public String formatInterval(Date from, Date to) {
SimpleDateFormat dateFormat = new SimpleDateFormat(dFormat),
timeFormat = new SimpleDateFormat(tFormat);
StringBuilder s = new StringBuilder();
// Day
s.append(dateFormat.format(from));
s.append(' ');
// Start time
s.append(timeFormat.format(from));
s.append(" - ");
// End time
s.append(timeFormat.format(to));
return s.toString();
}
public String formatInterval(Calendar from, Calendar to) {
return formatInterval(from.getTime(), to.getTime());
}
我会推荐 DateUtils:
String range = DateUtils.formatDateRange(mContext, startDate.getMillis(), endDate.getMillis(), DateUtils.FORMAT_ABBREV_TIME);
(starDate 和 endDate 来自 jodaTime,如果使用“日期”,则需要通过日历将其转换为毫秒)