在java中,我有两个包含日期和时间的日历对象。两个日历对象都在同一天,但会有不同的时间。我如何将其格式化为如下例所示:
2013年11月8日星期三上午10:00至11:00 AM
感谢。
答案 0 :(得分:3)
您应该使用SimpleDateFormat
来执行此操作,此处为the docs并提供示例:
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());
}
答案 1 :(得分:1)
我会推荐DateUtils:
String range = DateUtils.formatDateRange(mContext, startDate.getMillis(), endDate.getMillis(), DateUtils.FORMAT_ABBREV_TIME);
(starDate和endDate来自jodaTime,如果您使用"日期"您需要通过日历将其转换为毫秒)