时间工具类,得到当前时间,date转string

package com.qiu.tool;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTools {
    private static final String YYYY_MM_DD="yyyy-MM-dd";
    private static final String YYYY_MM_DD_HH="yyyy-MM-dd HH";
    private static final String HH="HH";
    private static final String HH_MM="HH:mm";
    private static final String HH_MM_SS="HH:mm:ss";
    private static final String HH_MM_SS_A="HH:mm:ss a";
    private static final String YYYY_MM_DD_HH_MM="yyyy-MM-dd HH:mm";
    private static final String YYYY_MM_DD_HH_MM_SS="yyyy-MM-dd HH:mm:ss";
    private static final String YYYY_MM_DD_HH_MM_SS_A="yyyy-MM-dd HH:mm:ss a";

    /**
     * 获取当前时间
     * @param pattern 格式:
     *                --yyyy-MM-dd;
     *                --yyyy-MM-dd HH;
     *                --HH;
     *                --HH:mm;
     *                --HH:mm:ss;
     *                --HH:mm:ss a;
     *                --yyyy-MM-dd HH:mm;
     *                --yyyy-MM-dd HH:mm:ss;
     *                --yyyy-MM-dd HH:mm:ss a
     * @return 当前时间字符串
     */
    public static String getNowTime(String pattern){
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        Date date = new Date();
        return sdf.format(date);
    }

    /**
     * 获取当前时间(从Calendar类获取)
     * @param pattern 格式:
     *                 --yyyy-MM-dd;
     *                 --yyyy-MM-dd HH;
     *                 --HH;
     *                 --HH:mm;
     *                 --HH:mm:ss;
     *                 --HH:mm:ss a;
     *                 --yyyy-MM-dd HH:mm;
     *                 --yyyy-MM-dd HH:mm:ss;
     *                 --yyyy-MM-dd HH:mm:ss a;
     *                 --yyyy年MM月dd HH时mm分ss秒;
     * @return 当前时间字符串
     */
    public static String getNowTimeFormCalendar(String pattern) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(calendar.getTime());
    }

    /**
     * 获取当前时间(从Calendar类获取,统计年月日时分秒)
     * @param pattern 格式:
     *                --yyyy-MM-dd;
     *                --yyyy-MM-dd HH;
     *                --HH;
     *                --HH:mm;
     *                --HH:mm:ss;
     *                --HH:mm:ss a;
     *                --yyyy-MM-dd HH:mm;
     *                --yyyy-MM-dd HH:mm:ss;
     *
     * @return 当前时间字符串
     */
    public static String getNowTimeForamCalendarCount(String pattern){
        Calendar cal=Calendar.getInstance();
        StringBuilder sb=new StringBuilder("");
        if(pattern.contains("yyyy")){
            sb.append(cal.get(Calendar.YEAR));
            sb.append("年");
        }
        if(pattern.contains("MM")){
            sb.append(cal.get(Calendar.MONTH));
            sb.append("月");
        }
        if(pattern.contains("dd")){
            sb.append(cal.get(Calendar.DATE));
            sb.append("日");
        }

        if(pattern.contains("HH")){
            sb.append(cal.get(Calendar.HOUR_OF_DAY));
            sb.append("时");
        }
        if(pattern.contains("mm")){
            sb.append(cal.get(Calendar.MINUTE));
            sb.append("分");
        }
        if(pattern.contains("ss")){
            sb.append(cal.get(Calendar.SECOND));
            sb.append("秒");
        }
        return  sb.toString();
    }



    /**
     * 得到几天后的时间
     * @param number 天数
     * @return 几天后的时间
     */
    public static Date getDateDaysAfter(int number){
        return getDateAround(+number,Calendar.DATE);
    }

    /**
     * 得到几天前的时间
     * @param number 天数
     * @return 几天前的时间
     */
    public static Date getDateDaysBefore(int number){
       return getDateAround(-number,Calendar.DATE);
    }

    /**
     * 得到几个月后的时间
     * @param number 月数
     * @return 几月后的时间
     */
    public static Date getDateMonthAfter(int number){
        return getDateAround(+number,Calendar.MONTH);
    }

    /**
     * 得到几月前的时间
     * @param number 月数
     * @return 几月前的时间
     */
    public static Date getDateMonthBefore(int number){
        return getDateAround(-number,Calendar.MONTH);
    }

    /**
     * 得到几年后的时间
     * @param number 年数
     * @return 几年后的时间
     */
    public static Date getDateYearAfter(int number){
        return getDateAround(+number,Calendar.YEAR);
    }

    /**
     * 得到几年前的时间
     * @param number 年数
     * @return 几年前的时间
     */
    public static Date getDateYearBefore(int number){
        return getDateAround(-number,Calendar.YEAR);
    }

    /**
     *
     * @param number 正数为加,负数为减
     * @param dateUnit 时间单温:
     *                 --Calendar.YEAR 年;
     *                 --Calendar.MONTH 月;
     *                 --Calendar.DATE 日;
     *                 --Calendar.HOUR 时;
     *                 --Calendar.MINUTE 分;
     *
     * @return
     */
    private static Date getDateAround(int number,int dateUnit){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(dateUnit, number);
        return calendar.getTime();
    }

    /**
     * date转格式化的时间
     * @param date  date数据
     * @param pattern 格式
     * @return  格式化的时间字符串
     */
    public  static String dateToFormatString(Date date,String pattern){
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        String format = sdf.format(date.getTime());
        return format;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值