在开发过程中,总会遇到对日期的选择这样的一个问题,在最近的开发中我遇到了一个需求,就是将前一个星期的日期(每天的年月日)提取出来,然后整理成历史记录以供查询,在尝试了多种方法后,最后终有收获,现将方法分享出来。
整个的方法写成了一个类,在这个类里面我主要运用到了Calendar这个类来帮助我们实现对前一星期日期的提取。
具体思路如下:
1、先使用Calendar获取当前的年份、当前的月份、当前的日期。
2、在用Calendar的set函数设定当前时间。
3、通过Calendar的add函数来寻找前或者后几天的日期。
4、最后用Calendar的get函数获取当时的具体日期。
本方法将日期转化为String并保存在List<String>中了,其中有一些细节需要大家仔细注意。
具体代码如下:
package com.example.app_zhihuribao.support;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;
/**
* Created by 尽途 on 2017/7/2.
*/
public final class tabtitle {
public tabtitle(){
}
public List<String> getTitles(){
List<String>titles=new ArrayList<String>();
String mYear; // 当前年
String mMonth; // 月
String mDay;
int current_day;
int current_month;
int current_year;
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
current_day=c.get(Calendar.DAY_OF_MONTH);
current_month=c.get(Calendar.MONTH);
current_year=c.get(Calendar.YEAR);
for (int i=0;i<7;i++){
c.clear();//记住一定要clear一次
c.set(Calendar.MONTH,current_month);
c.set(Calendar.DAY_OF_MONTH,current_day);
c.set(Calendar.YEAR,current_year);
c.add(Calendar.DATE,-i);//j记住是DATE
mMonth = String.valueOf(c.get(Calendar.MONTH)+1);// 获取当前月份
mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前日份的日期号码
mYear = String.valueOf(c.get(Calendar.YEAR));// 获取当前年份
String date =mYear+"年"+mMonth + "月" + mDay + "日";
titles.add(date);
}
return titles;
}
}
如果是对后一个星期只需将其中的-i改为+i即可。