日期获取方式



import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;

/**
 * @author cxn
 *  2016年3月23日
        日期工具类
 */
public class DateUtil {

 private static final int FIRST_DAY = Calendar.MONDAY;

 // 获取本月第一天日期
 public static String getTimesMonthmorning() {
  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar calendar = Calendar.getInstance();
  Date theDate = calendar.getTime();
  GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
  gcLast.setTime(theDate);
  // 设置为第一天
  gcLast.set(Calendar.DAY_OF_MONTH, 1);
  String day_first = sf.format(gcLast.getTime());

  return day_first;
 }

 // 获取本月最后一天日期
 public static String getTimesMonthLast() {
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  Calendar ca = Calendar.getInstance();
  ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));

  String last = format.format(ca.getTime());

  return last;
 }

 // 获取本周的星期一的日期
 public static String getTimesWeekfirst() {
  Calendar cal = Calendar.getInstance();
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  cal.setFirstDayOfWeek(Calendar.MONDAY);
  cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 获取本周一的日期
  return df.format(cal.getTime());
 }

 // 获取本周星期天的日期
 public static String getTimesWeeklast() {
  Calendar cal = Calendar.getInstance();
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  cal.setFirstDayOfWeek(Calendar.MONDAY);
  cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  return df.format(cal.getTime());

 }

 // 计算目前是一年中的第几周
 public static int week() {
  Calendar cal = Calendar.getInstance(Locale.CHINA); // 实例化cal
  cal.setFirstDayOfWeek(Calendar.MONDAY);
  int week = cal.get(Calendar.WEEK_OF_YEAR);
  return week;
 }

 // 计算今年的年份
 public static int year() {
  Calendar cal = Calendar.getInstance(Locale.CHINA); // 实例化cal
  cal.setFirstDayOfWeek(Calendar.MONDAY);
  int year = cal.get(Calendar.YEAR);
  return year;
 }

 // 计算当前的月份
 public static int month() {
  Calendar cal = Calendar.getInstance(Locale.CHINA); // 实例化cal
  cal.setFirstDayOfWeek(Calendar.MONDAY);
  return cal.get(Calendar.MONTH) + 1;
 }

 // 获取本周第星期一的日期 date 类型
 public static Date convertWeekByDate(Date time) {

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
  Calendar cal = Calendar.getInstance();
  cal.setTime(time);

  // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
  int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天

  if (1 == dayWeek) {

   cal.add(Calendar.DAY_OF_MONTH, -1);

  }
  cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

  int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天

  cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

  String imptimeBegin = sdf.format(cal.getTime());
  cal.add(Calendar.DATE, 6);
  try {
   Date date = sdf.parse(imptimeBegin);
   return date;
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return null;

 }

 // 计算当前年的开始日期
 public static String getCurrentYearStartTime() {

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar c = Calendar.getInstance();
  String now = null;
  try {
   c.set(Calendar.MONTH, 0);
   c.set(Calendar.DATE, 1);
   now = sdf.format(c.getTime());
  } catch (Exception e) {
   e.printStackTrace();
  }
  return now;
 }

 // 计算当前年的结束日期
 public static String getCurrentYearEndTime() {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar c = Calendar.getInstance();
  String now = null;
  try {
   c.set(Calendar.MONTH, 11);
   c.set(Calendar.DATE, 31);
   now = sdf.format(c.getTime());
  } catch (Exception e) {
   e.printStackTrace();
  }
  return now;
 }

 // 计算当前季度的开始日期
 public static String getCurrentQuarterStartTime() {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar c = Calendar.getInstance();
  int currentMonth = c.get(Calendar.MONTH) + 1;
  String now = null;
  try {
   if (currentMonth >= 1 && currentMonth <= 3)
    c.set(Calendar.MONTH, 0);
   else if (currentMonth >= 4 && currentMonth <= 6)
    c.set(Calendar.MONTH, 3);
   else if (currentMonth >= 7 && currentMonth <= 9)
    c.set(Calendar.MONTH, 4);
   else if (currentMonth >= 10 && currentMonth <= 12)
    c.set(Calendar.MONTH, 9);
   c.set(Calendar.DATE, 1);
   now = sdf.format(c.getTime());
  } catch (Exception e) {
   e.printStackTrace();
  }
  return now;
 }

 
 //计算当前季度的結束日期
 public static String getCurrentQuarterEndTime() {
  Calendar c = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  int currentMonth = c.get(Calendar.MONTH) + 1;
  String now = null;
  try {
   if (currentMonth >= 1 && currentMonth <= 3) {
    c.set(Calendar.MONTH, 2);
    c.set(Calendar.DATE, 31);
   } else if (currentMonth >= 4 && currentMonth <= 6) {
    c.set(Calendar.MONTH, 5);
    c.set(Calendar.DATE, 30);
   } else if (currentMonth >= 7 && currentMonth <= 9) {
    c.set(Calendar.MONTH, 8);
    c.set(Calendar.DATE, 30);
   } else if (currentMonth >= 10 && currentMonth <= 12) {
    c.set(Calendar.MONTH, 11);
    c.set(Calendar.DATE, 31);
   }
   now = sdf.format(c.getTime());
  } catch (Exception e) {
   e.printStackTrace();
  }
  return now;
 }

 // 获取任意一天的日期
 public static Date getDate(Date date) {
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(date);
  calendar.add(Calendar.DAY_OF_MONTH, 1);
  Date date1 = new Date(calendar.getTimeInMillis());
  return date1;
 }

 //獲取當前日期季度
 public static Integer getCurrentQuarter() {
  Calendar c = Calendar.getInstance();
  int currentMonth = c.get(Calendar.MONTH) + 1;
  Integer now = 0;

  if (currentMonth >= 1 && currentMonth <= 3) {
   now = 1;
  } else if (currentMonth >= 4 && currentMonth <= 6) {
   now = 2;
  } else if (currentMonth >= 7 && currentMonth <= 9) {
   now = 3;
  } else if (currentMonth >= 10 && currentMonth <= 12) {
   now = 4;
  }

  return now;
 }

 //數字日期和月份的轉化
 public static String getMonth(Integer month) {
  String mon = null;
  if (month == 1) {
   mon = "一月份";
  } else if (month == 2) {
   mon = "二月份";
  } else if (month == 3) {
   mon = "三月份";
  } else if (month == 4) {
   mon = "四月份";
  } else if (month == 5) {
   mon = "五月份";
  } else if (month == 6) {
   mon = "六月份";
  } else if (month == 7) {
   mon = "七月份";
  } else if (month == 8) {
   mon = "八月份";
  } else if (month == 9) {
   mon = "九月份";
  } else if (month == 10) {
   mon = "十月份";
  } else if (month == 11) {
   mon = "十一月份";
  } else if (month == 12) {
   mon = "十二月份";
  }
  return mon;
 }

 //計算本週的週一到周七的所有日期時間
 public static List<String> getWeekdays() {
  Calendar calendar = Calendar.getInstance();
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  while (calendar.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) {
   calendar.add(Calendar.DATE, -1);
  }
  List<String> list = new ArrayList<String>();
  // setToFirstDay(calendar);
  for (int i = 0; i < 7; i++) {
   // System.out.println(df.format(calendar.getTime()));
   list.add(df.format(calendar.getTime()));
   calendar.add(Calendar.DATE, 1);

  }

  return list;
 }

 //傳進去的d的日期的後6天的日期
 public static String getlast(String d) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date dt = (Date) sdf.parse(d, new ParsePosition(0));
  Calendar rightNow = Calendar.getInstance();
  rightNow.setTime(dt);
  rightNow.add(Calendar.DATE, 6);// 你要加减的日期
  Date dt1 = (Date) rightNow.getTime();
  String da = sdf.format(dt1);
  return da;
 }

 // 计算2个日期之间相差的天数
 public static int daysBetween(Date smdate, Date bdate) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  try {
   smdate = sdf.parse(sdf.format(smdate));
   bdate = sdf.parse(sdf.format(bdate));
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  Calendar cal = Calendar.getInstance();
  cal.setTime(smdate);
  long time1 = cal.getTimeInMillis();
  cal.setTime(bdate);
  long time2 = cal.getTimeInMillis();
  long between_days = (time2 - time1) / (1000 * 3600 * 24);

  return Integer.parseInt(String.valueOf(between_days));
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值