java 获取相关日期

package com.iss.ecommerce.countAnalysis.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 获取 当前年、半年、季度、月、日、小时 开始结束时间
 */
public class DateUtils {

 /**
  * 获取本周开始时间
  *
  * @return
  */
 public String getMondayOFWeek() {
  String weekDayStart = "";
  Calendar c = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  try {
   int weekday = c.get(Calendar.DAY_OF_WEEK) - 2;
   c.add(Calendar.DATE, -weekday);
   weekDayStart = sdf.format(c.getTime()) + " 00:00:00";
  } catch (Exception e) {
   e.printStackTrace();
  }
  return weekDayStart;
 }

 /**
  * 获取当月第一天
  *
  * @return
  */
 public String getFirstDayOfMonth() {
  String str = "";
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

  Calendar lastDate = Calendar.getInstance();
  lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
  str = sdf.format(lastDate.getTime());

  str = str + " 00:00:00";
  return str;
 }

 /**
  * 当前季度的开始时间,即2012-01-1 00:00:00
  *
  * @return
  */
 public String getCurrentQuarterStartTime() {
  String quarterStartTime = "";
  Calendar c = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  int currentMonth = c.get(Calendar.MONTH) + 1;
  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);
   quarterStartTime = sdf.format(c.getTime()) + " 00:00:00";
  } catch (Exception e) {
   e.printStackTrace();
  }
  return quarterStartTime;
 }

 /**
  * 获得本年第一天的日期
  *
  * @return
  */
 public String getCurrentYearFirst() {
  String currentYearStartTime = "";
  Calendar c = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  ;
  try {
   c.set(Calendar.MONTH, 0);
   c.set(Calendar.DATE, 1);
   currentYearStartTime = sdf.format(c.getTime()) + " 00:00:00";
  } catch (Exception e) {
   e.printStackTrace();
  }
  return currentYearStartTime;
 }

 /**
  * 获取当天开始时时间
  *
  * @return
  */
 public String getNowdayTime() {
  String re_time = "";
  Date date = new Date();
  SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
  String currentdata = f.format(date);
  re_time = currentdata + " 00:00:00";
  return re_time;
 }

 /**
  * 获取当天此时时间
  *
  * @return
  */
 public String getNowTime() {
  String re_time = "";
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Date currentTime = new Date();// 得到当前系统时间
  re_time = formatter.format(currentTime); // 将日期时间格式化
  return re_time;
 }
 
 /**
  * 获取当年
  * @return
  */
 public String getCurrentYear(){
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
  Date currentTime = new Date();// 得到当前系统时间
  return formatter.format(currentTime);
 }
 
 /**
  * 获取今年第一个月份
  * @return
  */
 public String getCurrentFirstMonth(){
  return getCurrentYear() + "-01";
 }
 
 /**
  * 获取当月
  * @return
  */
 public String getCurrentMonth(){
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
  Date currentTime = new Date();// 得到当前系统时间
  return formatter.format(currentTime);
 }
 
 /**
  * 近i个月的开始时间
  * @param i
  * @return
  */
 public static String getStartMonth(int i){
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
  Calendar calendar = Calendar.getInstance();
  calendar.add(Calendar.MONTH, -i + 1);
  return sdf.format(calendar.getTime());
 }

 /**
  * 根据日期获取对应的年值、月值
  * @param date
  * @return
  */
 public static Map<String, Integer> getPerNum(String date){
  Map<String, Integer> data = new HashMap<String, Integer>();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
  Date date2 = null;
  try {
   date2 = sdf.parse(date);
  } catch (ParseException e) {
   e.printStackTrace();
  }
  if(null != date2){
   Calendar calendar = Calendar.getInstance();
   calendar.setTime(date2);
   data.put("year", calendar.get(Calendar.YEAR));
   data.put("month", calendar.get(Calendar.MONTH) + 1);
  }
  return data;
 }
 
 /**
  * 月差
  * @param startDate
  * @param endDate
  * @return
  */
 public static int getMonthIndex(String startDate, String endDate){
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
  Date date1 = null;
  Date date2 = null;
  try {
   date1 = sdf.parse(startDate);
   date2 = sdf.parse(endDate);
  } catch (ParseException e) {
   e.printStackTrace();
  }
  if(null != date1 && null != date2){
   return getMonth(date1, date2);
  }
  return 0;
 }
 
 /**
  * 二个日期月差
  * @param start
  * @param end
  * @return
  */
 public static int getMonth(Date start, Date end) {
        if (start.after(end)) {
            Date t = start;
            start = end;
            end = t;
        }
        Calendar startCalendar = Calendar.getInstance();
        startCalendar.setTime(start);
        Calendar endCalendar = Calendar.getInstance();
        endCalendar.setTime(end);
        Calendar temp = Calendar.getInstance();
        temp.setTime(end);
        temp.add(Calendar.DATE, 1);

        int year = endCalendar.get(Calendar.YEAR)
                - startCalendar.get(Calendar.YEAR);
        int month = endCalendar.get(Calendar.MONTH)
                - startCalendar.get(Calendar.MONTH);

        if ((startCalendar.get(Calendar.DATE) == 1)
                && (temp.get(Calendar.DATE) == 1)) {
            return year * 12 + month + 1;
        } else if ((startCalendar.get(Calendar.DATE) != 1)
                && (temp.get(Calendar.DATE) == 1)) {
            return year * 12 + month;
        } else if ((startCalendar.get(Calendar.DATE) == 1)
                && (temp.get(Calendar.DATE) != 1)) {
            return year * 12 + month;
        } else {
            return (year * 12 + month - 1) < 0 ? 0 : (year * 12 + month);
        }
    }
 
 /**
  * 获取开始日期,yyyy-MM加上index个月后的日期
  * @param start
  * @param index
  * @return
  */
 public static String getDate(String start, int index){
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
  Date date = null;
  try {
   date = sdf.parse(start);
   Calendar calendar = Calendar.getInstance();
   calendar.setTime(date);
   calendar.add(Calendar.MONTH, index);
   return sdf.format(calendar.getTime());
  } catch (ParseException e) {
   e.printStackTrace();
  }
  return null;
 }

 
 public static void main(String[] args) {
  DateUtils dateUtils = new DateUtils();
  System.out
    .println("=======================今天==============================");
  System.out.println(dateUtils.getNowdayTime());
  System.out.println(dateUtils.getNowTime());
  System.out
    .println("=======================本周==============================");
  String date = dateUtils.getMondayOFWeek();
  System.out.println(date);
  String cureentString = dateUtils.getNowTime();
  System.out.println(cureentString);
  System.out
    .println("=======================本月==============================");
  System.out.println(dateUtils.getFirstDayOfMonth());
  System.out.println(dateUtils.getNowTime());
  System.out
    .println("==========================本季度===========================");
  System.out.println(dateUtils.getCurrentQuarterStartTime());
  System.out.println(dateUtils.getNowTime());

  System.out
    .println("==========================今年==========================");
  System.out.println(dateUtils.getCurrentYearFirst());
  System.out.println(dateUtils.getNowTime());
  System.out.println(dateUtils.getCurrentYear());
  System.out.println(dateUtils.getCurrentMonth());
  System.out.println(getMonthIndex("2013-08","2014-06"));
  System.out.println(getDate("2013-08", 5));
  System.out.println(getStartMonth(5));
 }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值