3

在 java 中,我有两个包含日期和时间的日历对象。两个日历对象都在同一天,但时间不同。如何将其格式化为如下示例:

2013 年 11 月 8 日星期三 10:00-11:00

谢谢。

4

2 回答 2

3

您应该使用 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());
}
于 2013-11-02T22:48:00.557 回答
1

我会推荐 DateUtils:

String range = DateUtils.formatDateRange(mContext, startDate.getMillis(), endDate.getMillis(), DateUtils.FORMAT_ABBREV_TIME);

(starDate 和 endDate 来自 jodaTime,如果使用“日期”,则需要通过日历将其转换为毫秒)

于 2016-09-27T17:29:15.977 回答