我想获取当月的所有日期并将其添加到列表中。我想将它们添加为String:Sun,12月1日。只有我得到的是具有当前日期的Calendar对象。我怎样才能做到这一点?这是Calendar中的任何函数在字符串Monday或somethig上解析int天?如何以这种特定方式添加所有日子? 这就是我在这一刻所得到的:
int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
int daysInMonth = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
for(int i = 0; i < daysInMonth; i++){
//here I want to add strings, but don't know how
}
答案 0 :(得分:8)
您需要使用SimpleDateFormat
根据需要获取日期字符串并添加到列表。然后将日期移至第二天。
查看下面的代码
Calendar mCalendar = Calendar.getInstance();
int daysInMonth = mCalendar.getActualMaximum(Calendar.DAY_OF_MONTH);
ArrayList<String> allDays = new ArrayList<String>();
SimpleDateFormat mFormat = new SimpleDateFormat("EEE, dd MMM", Locale.US);
for(int i = 0; i < daysInMonth; i++){
// Add day to list
allDays.add(mFormat.format(mCalendar.getTime()));
// Move next day
mCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
此方法将月中的所有日期添加到列表中,但在许多情况下,这也将添加下个月的日期。如果您不想这样,请参阅下面的方法。
如果您想从今天(指定日期)仅添加剩余天数,请使用以下代码
Calendar mCalendar = Calendar.getInstance();
// Calculate remaining days in month
int remainingDay = mCalendar.getActualMaximum(Calendar.DAY_OF_MONTH) - mCalendar.get(Calendar.DAY_OF_MONTH) + 1;
ArrayList<String> allDays = new ArrayList<String>();
SimpleDateFormat mFormat = new SimpleDateFormat("EEE, dd MMM", Locale.US);
for(int i = 0; i < remainingDay; i++){
// Add day to list
allDays.add(mFormat.format(mCalendar.getTime()));
// Move next day
mCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
这将仅返回[Fri, 27 Dec, Sat, 28 Dec, Sun, 29 Dec, Mon, 30 Dec, Tue, 31 Dec]
(截至2013年12月27日)。所以我认为你正在寻找这种方法。
答案 1 :(得分:1)
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("d MMM yyyy",Locale.getDefault());
result = dateFormat.format(Calener.getInstance().getTime());
} catch (ParseException e) {
}
结果将于2013年12月27日