Java String,long,Date时间格式相互转换

/**
     * Date转String(格式自定义)
     * @param pattern yyyy-MM-dd HH:mm:ss yyyy-MM-dd等样式
     * @return
     */
    public static String date2String(Date date,String pattern) {
        SimpleDateFormat formatter = new SimpleDateFormat(pattern);
        String dateString = formatter.format(date);
        return dateString;
    }


    /**
     * string转date
     * @param str
     * @param pattern yyyy-MM-dd HH:mm:ss   yyyy-MM-dd等样式
     * @return
     */
    public static Date string2Date(String str,String pattern) {
        SimpleDateFormat formatter = new SimpleDateFormat (pattern);
        try {
            Date date = formatter.parse(str);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }


    // long转换为Date类型
    public static Date longToDate(long currentTime) {
        Date date = new Date(currentTime); // 根据long类型的毫秒数生命一个date类型的时间
        return date;
    }


    // date转换为long类型
    public static long date2Long(Date date) {
        long time = date.getTime();
        return time;
    }

    //string转long
    public static long string2Long(String str,String pattern){
        return date2Long(string2Date(str,pattern));
    }

    //long转string
    public static String long2String(long str,String pattern){
        return date2String(longToDate(str),pattern);
    }

如何判断在某一个时间的前后呢?

 //判断是否在两个时间段之间
    public static boolean betweenTwoTime(String startTime,String endTime){
        Date startDate=TimeParseUtil.string2Date(startTime,"yyyy-MM-dd HH:mm:ss");
        Date endDate=TimeParseUtil.string2Date(endTime,"yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        if(date.after(startDate)&&date.before(endDate)){
            return true;
        }else {
            return false;
        }
    }

思路就是转成Date,调用Date.before或者Date.after判断.

如何获取时间的年月日时分秒呢?


    /**
     * 获取年
     * @param date
     * @return
     */
    public static int getYear(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.YEAR);
    }

    /**
     * 获取月
     * @param date
     * @return
     */
    public static int getMonth(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.MONTH)+1;
    }

    /**
     * 获取天
     * @param date
     * @return
     */
    public static int getDay(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DAY_OF_MONTH);
    }

    /**
     * 获取时
     * @param date
     * @return
     */
    public static int getHour(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.HOUR_OF_DAY);
    }

    /**
     * 获取分
     * @param date
     * @return
     */
    public static int getMinute(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.MINUTE);
    }

注意月份比较特殊,比如2月,返回的是1,所以需要在结果处加1

注意月份比较特殊,比如2月,返回的是1,所以需要在结果处加1

注意月份比较特殊,比如2月,返回的是1,所以需要在结果处加1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值