您的位置:首页 > 移动开发 > Android开发

android 关于日期的获取

2012-09-22 09:37 232 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: