获得一些时间

java获取当前年、半年、季度、月、日、小时 开始结束时间等
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**

  • 获取 当前年、半年、季度、月、日、小时 开始结束时间
    */
    private final SimpleDateFormat shortSdf;
    private final SimpleDateFormat longHourSdf;
    private final SimpleDateFormat longSdf;

public RemindDateUtils(){
this.shortSdf = new SimpleDateFormat(“yyyy-MM-dd”);
this.longHourSdf = new SimpleDateFormat(“yyyy-MM-dd HH”);
this.longSdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
}

/**

  • 获得本周的第一天,周一
  • @return
    */
    public Date getCurrentWeekDayStartTime() {
    Calendar c = Calendar.getInstance();
    try {
    int weekday = c.get(Calendar.DAY_OF_WEEK) - 2;
    c.add(Calendar.DATE, -weekday);
    c.setTime(longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00"));
    } catch (Exception e) {
    e.printStackTrace();
    }
    return c.getTime();
    }

/**

  • 获得本周的最后一天,周日
  • @return
    */
    public Date getCurrentWeekDayEndTime() {
    Calendar c = Calendar.getInstance();
    try {
    int weekday = c.get(Calendar.DAY_OF_WEEK);
    c.add(Calendar.DATE, 8 - weekday);
    c.setTime(longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59"));
    } catch (Exception e) {
    e.printStackTrace();
    }
    return c.getTime();
    }

/**

  • 获得本天的开始时间,即2012-01-01 00:00:00
  • @return
    */
    public Date getCurrentDayStartTime() {
    Date now = new Date();
    try {
    now = shortSdf.parse(shortSdf.format(now));
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 获得本天的结束时间,即2012-01-01 23:59:59
  • @return
    */
    public Date getCurrentDayEndTime() {
    Date now = new Date();
    try {
    now = longSdf.parse(shortSdf.format(now) + " 23:59:59");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 获得本小时的开始时间,即2012-01-01 23:59:59
  • @return
    */
    public Date getCurrentHourStartTime() {
    Date now = new Date();
    try {
    now = longHourSdf.parse(longHourSdf.format(now));
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 获得本小时的结束时间,即2012-01-01 23:59:59
  • @return
    */
    public Date getCurrentHourEndTime() {
    Date now = new Date();
    try {
    now = longSdf.parse(longHourSdf.format(now) + “:59:59”);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 获得本月的开始时间,即2012-01-01 00:00:00
  • @return
    */
    public Date getCurrentMonthStartTime() {
    Calendar c = Calendar.getInstance();
    Date now = null;
    try {
    c.set(Calendar.DATE, 1);
    now = shortSdf.parse(shortSdf.format(c.getTime()));
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 当前月的结束时间,即2012-01-31 23:59:59
  • @return
    */
    public Date getCurrentMonthEndTime() {
    Calendar c = Calendar.getInstance();
    Date now = null;
    try {
    c.set(Calendar.DATE, 1);
    c.add(Calendar.MONTH, 1);
    c.add(Calendar.DATE, -1);
    now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 当前年的开始时间,即2012-01-01 00:00:00
  • @return
    */
    public Date getCurrentYearStartTime() {
    Calendar c = Calendar.getInstance();
    Date now = null;
    try {
    c.set(Calendar.MONTH, 0);
    c.set(Calendar.DATE, 1);
    now = shortSdf.parse(shortSdf.format(c.getTime()));
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 当前年的结束时间,即2012-12-31 23:59:59
  • @return
    */
    public Date getCurrentYearEndTime() {
    Calendar c = Calendar.getInstance();
    Date now = null;
    try {
    c.set(Calendar.MONTH, 11);
    c.set(Calendar.DATE, 31);
    now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 当前季度的开始时间,即2012-01-1 00:00:00
  • @return
    */
    public Date getCurrentQuarterStartTime() {
    Calendar c = Calendar.getInstance();
    int currentMonth = c.get(Calendar.MONTH) + 1;
    Date 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 = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

/**

  • 当前季度的结束时间,即2012-03-31 23:59:59
  • @return
    /
    public Date getCurrentQuarterEndTime() {
    Calendar c = Calendar.getInstance();
    int currentMonth = c.get(Calendar.MONTH) + 1;
    Date 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,;
    c.set(Calendar.DATE, 30);
    } else if (currentMonth >= 10 && currentMonth <= 12) {
    c.set(Calendar.MONTH, 11);
    c.set(Calendar.DATE, 31);
    }
    now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }
    /
    *
  • 获取前/后半年的开始时间
  • @return
    */
    public Date getHalfYearStartTime(){
    Calendar c = Calendar.getInstance();
    int currentMonth = c.get(Calendar.MONTH) + 1;
    Date now = null;
    try {
    if (currentMonth >= 1 && currentMonth <= 6){
    c.set(Calendar.MONTH, 0);
    }else if (currentMonth >= 7 && currentMonth <= 12){
    c.set(Calendar.MONTH, 6);
    }
    c.set(Calendar.DATE, 1);
    now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;

}
/**

  • 获取前/后半年的结束时间
  • @return
    */
    public Date getHalfYearEndTime(){
    Calendar c = Calendar.getInstance();
    int currentMonth = c.get(Calendar.MONTH) + 1;
    Date now = null;
    try {
    if (currentMonth >= 1 && currentMonth <= 6){
    c.set(Calendar.MONTH, 5);
    c.set(Calendar.DATE, 30);
    }else if (currentMonth >= 7 && currentMonth <= 12){
    c.set(Calendar.MONTH, 11);
    c.set(Calendar.DATE, 31);
    }
    now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return now;
    }

}

/**

  • 获取前一天日期 及星期
    */
    public class RemindDateUtils {
    private void initDate(){
    String[] weekDays = {“周日”,“周一”,“周二”,“周三”,“周四”,“周五”,“周六”};
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.Date,-1);
    int i = cal.get(Calendar.DAY_OF_WEEK)-1;
    if(i<0){
    i=0;
    }
    String yesterday = new SimpleDateFormate(“yyyy年MM月dd日”).format(cal.getTime());
         String w = weekDays[i];
    }

/**

  • 获取某月的最后一天
  • @Title:getLastDayOfMonth
  • @Description:
  • @param:@param year
  • @param:@param month
  • @param:@return
  • @return:String
  • @throws
    */
    public static String getLastDayOfMonth(int year,int month)
    {
    Calendar cal = Calendar.getInstance();
    //设置年份
    cal.set(Calendar.YEAR,year);
    //设置月份
    cal.set(Calendar.MONTH, month-1);
    //获取某月最大天数
    int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    //设置日历中月份的最大天数
    cal.set(Calendar.DAY_OF_MONTH, lastDay);
    //格式化日期
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
    String lastDayOfMonth = sdf.format(cal.getTime());

return lastDayOfMonth;
}

/获得30天/
public static List getformatDD(){
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
Date today = new Date();
Calendar theCa = Calendar.getInstance();
List list=new ArrayList();
for(int i=0;i<30;i++){
theCa.setTime(today);
theCa.add(theCa.DATE, -29+i);//最后一个数字30可改,30天的意思
Date start = theCa.getTime();
String startDate = sdf.format(start);//三十天之前日期
list.add(startDate);
}
return list;
}
/获得12月/
public static List getformatMM(){
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM”);
Date today = new Date();
Calendar theCa = Calendar.getInstance();
List list=new ArrayList();
for(int i=0;i<12;i++){
theCa.setTime(today);
theCa.add(theCa.MONTH, -11+i);//最后一个数字30可改,30天的意思
Date start = theCa.getTime();
String startDate = sdf.format(start);//三十天之前日期
list.add(startDate);
}
return list;
}
/获得5年/
public static List getformatYYYY(){
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy”);
Date today = new Date();
Calendar theCa = Calendar.getInstance();
List list=new ArrayList();
for(int i=0;i<5;i++){
theCa.setTime(today);
theCa.add(theCa.YEAR, -4+i);//最后一个数字30可改,30天的意思
Date start = theCa.getTime();
String startDate = sdf.format(start);//三十天之前日期
list.add(startDate);
}
return list;
}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值