- //获取当前时间 如果****-01-01不是周一从第一个周一开始计算
//设置每周的第一天为周一
cal.setFirstDayOfWeek(Calendar.MONDAY);
//设置每周从周一开始
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
//设置每周最少为7天
cal.setMinimalDaysInFirstWeek(7);
// 设置年度为指定的年
cal.set(Calendar.YEAR, cal.get(cal.YEAR));
//设置判断时间
cal.setTime(new Date());
//根据情况返回日期为当前第几个周
return cal.get(Calendar.WEEK_OF_YEAR);
//获取当前周的所有日期
cal.set(Calendar.WEEK_OF_YEAR, week);
while (cal.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) {
cal.add(Calendar.DATE, -1);
}
for (int i = 0; i < 7; i++) {
list.add(cal.getTime().getTime());
cal.add(Calendar.DATE, 1);
}
//区别第一种如果****-01-01不是周一的时候回从去年的最后一个周一开始计算
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));
cal.set(Calendar.WEEK_OF_YEAR, 52);
while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
cal.add(Calendar.DATE, -1);
}
for (int i = 0; i < 7; i++) {
System.out.println(sdf.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
}
//计算某月的开始时间和结束时间
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, 月份);
cal.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(sdf.format(cal.getTime()));
cal.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = cal.getTime();
cal.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = cal.getTime();
System.out.println(sdf.format(lastDate)+""+sdf.format(firstDate));
//计算某月所有日期
list.add(sdf.format(dBegin));
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
// 测试此日期是否在指定日期之后
while (dEnd.after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
list.add(sdf.format(calBegin.getTime()));
}
/**
* 得到本周周一
*
* @return yyyy-MM-dd
*/
public static String getMondayOfThisWeek() {
Calendar c = Calendar.getInstance();
int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1;
if (dayofweek == 0)
dayofweek = 7;
c.add(Calendar.DATE, -dayofweek + 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(c.getTime());
}
/**
* 得到本周周日
*
* @return yyyy-MM-dd
*/
public static String getSundayOfThisWeek() {
Calendar c = Calendar.getInstance();
int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1;
if (dayofweek == 0)
dayofweek = 7;
c.add(Calendar.DATE, -dayofweek + 7);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(c.getTime());
}
//当前日期加几天
private String addDate(String date,int day){
try {
Date od=sdf.parse(date);
Date nd=addDete(od, day);
return sdf.format(nd);
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}
public static Date addDete(Date d,long day) throws ParseException {
long time = d.getTime();
day = day*24*60*60*1000;
time+=day;
return new Date(time);
}
//两日期相减得到之间天数(是String格式)
public static int daysBetween(String smdate,String bdate) throws ParseException{
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
总结一下自己在Android开发中遇到的时间处理
最新推荐文章于 2019-07-31 18:51:31 发布