android 关于日期的获取

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;
	}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值