1)根据 DatePicker、TimePicker 获取系统时间 yyyy-MM-dd HH:mm:ss
public class DatePickerActivity extends Activity{
private EditText showDate = null;
private EditText showTime = null;
private static final int SHOW_DATAPICK = 0;
private static final int DATE_DIALOG_ID = 1;
private static final int SHOW_TIMEPICK = 2;
private static final int TIME_DIALOG_ID = 3;
private int mYear;
private int mMonth;
private int mDay;
private int mHour;
private int mMinute;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.datepicker);
initializeViews();
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
setDateTime();
setTimeOfDay();
}
//初始化控件和UI视图
private void initializeViews(){
showDate = (EditText) findViewById(R.id.ttdate);
showTime = (EditText) findViewById(R.id.tttime);
showDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message msg = new Message();
// if(showDate.equals(EditText) v){
msg.what = DatePickerActivity.SHOW_DATAPICK;
// }
DatePickerActivity.this.dateandtimeHandler.sendMessage(msg);
}
});
showTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message msg = new Message();
// if(showTime.equals(EditText) v){
msg.what = DatePickerActivity.SHOW_TIMEPICK;
// }
DatePickerActivity.this.dateandtimeHandler.sendMessage(msg);
}
});
}
//设置日期
private void setDateTime() {
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
updateDateDisplay();
}
//更新日期显示
private void updateDateDisplay() {
showDate.setText(new StringBuilder().append(mYear).append("-")
.append((mMonth + 1) < 10 ? "0" + (mMonth + 1) : (mMonth + 1)).append("-")
.append((mDay < 10) ? "0" + mDay : mDay).append(" ").append(mHour).append(":")
.append((mMinute < 10) ? "0" + mMinute : mMinute));
}
//日期控制事件
private DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDateDisplay();
}
};
/**
* 设置时间
*/
private void setTimeOfDay(){
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
updateDateDisplay();
}
/**
* 更新时间显示
*/
private void updateTimeDisplay(){
showTime.setText(new StringBuilder().append(mHour).append(":")
.append((mMinute < 10) ? "0" + mMinute : mMinute));
}
/**
* 时间控件事件
*/
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
updateDateDisplay();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this, dateSetListener, mYear, mMonth,
mDay);
case TIME_DIALOG_ID:
return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, true);
}
return null;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
switch (id) {
case DATE_DIALOG_ID:
((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);
break;
case TIME_DIALOG_ID:
((TimePickerDialog) dialog).updateTime(mHour, mMinute);
break;
}
}
/**
* 处理日期和时间控件的Handler
*/
Handler dateandtimeHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case DatePickerActivity.SHOW_DATAPICK:
showDialog(DATE_DIALOG_ID);
break;
case DatePickerActivity.SHOW_TIMEPICK:
showDialog(TIME_DIALOG_ID);
break;
}
}
};
}
2)将当前日期转换成星期字符串 2012-09-22 -》星期六 (此处周日是每周第一天)
public static final int WEEKDAYS = 7;
public static String[] WEEK = {
“SUNDAY”,
“MONDAY”,
“TUESDAY”,
“WEDNESDAY",
”THRUSDAY",
“FRIDAY",
”SATURDAY
};
public static String DateToWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayIndex = calendar.get(Calendar.DAY_OF_WEEK);
if (dayIndex < 1 || dayIndex > WEEKDAYS) {
return null;
}
return WEEK[dayIndex - 1];
}
3)通过当前日期得到本周、上周、下周一周的日期列表 (周一为每周第一天)
Test test=new Test();
List list2=test.getWeekDate();
for(int i=0;i<list2.size();i++){
System.out.println(list2.get(i));
}
本周:
public Calendar getDate(){
Calendar cal = new GregorianCalendar();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_WEEK, (2-cal.get(Calendar.DAY_OF_WEEK))%7);
return cal;
}
public List getWeekDate(){
List list = new ArrayList();
Calendar cal = this.getDate();//
SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd");
for(int i=0;i<7;i++){
list.add(d.format(cal.getTime()));
cal.roll(Calendar.DAY_OF_YEAR,true);
}
return list;
}
上周:
public Calendar getDate(){
Calendar cal = new GregorianCalendar();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_WEEK, (9-cal.get(Calendar.DAY_OF_WEEK))%7);
return cal;
}
public List getWeekDate(){
List list = new ArrayList();
Calendar cal = this.getDate();
SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd");
for(int i=0;i<7;i++){
list.add(d.format(cal.getTime()));
cal.roll(Calendar.DAY_OF_YEAR,false);
}
return list;
}
下周:
public Calendar getDate()
{
Calendar cal = new GregorianCalendar();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_WEEK, (9-cal.get(Calendar.DAY_OF_WEEK))%7);
return cal;
}
public List getWeekDate(){
List list = new ArrayList();
Calendar cal = this.getDate();
SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd");
for(int i=0;i<7;i++){
list.add(d.format(cal.getTime()));
cal.roll(Calendar.DAY_OF_YEAR,true);
}
return list;
}
获取每周第一天与最后一天的日期 周日为第一天
/*
* 获取每周第一天与最后一天的日期
*
* 周日为每周第一天
*/
public static List<String> getWeekDate(String date) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(format.parse(date));
// 得到今天是星期几,星期日为1
int datInWeek = calendar.get(Calendar.DAY_OF_WEEK);
// Clone一个新的
Calendar calendar1 = (Calendar) calendar.clone();
// 所在周的第一天
calendar.add(Calendar.DAY_OF_MONTH, -(datInWeek - 1));
String Sunday = format.format(calendar.getTime());
// 所在周的最后一天
calendar1.add(Calendar.DAY_OF_MONTH, 7 - datInWeek);
String Saturday = format.format(calendar1.getTime());
List<String> list = new ArrayList<String>();
list.add(Sunday);
list.add(Saturday);
return list;
}