Android time tool DateUtils transfers time to timestamp to obtain separate year, month, day, hour, minute, second and milliseconds

Convert time to timestamp to obtain individual year, month, day, hour, minute, second, and milliseconds

import android.annotation.SuppressLint;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * @author zd
 * @create 2022-06-30 9:02
 * 来源:https://blog.51cto.com/mozhimen/5413223
 */
public class DateUtils {
    
    

    public final static String format_yyyyMMddhhmmss = "yyyy-MM-dd HH:mm:ss";

    public final static String format_yyyyMMddhhmm = "yyyy-MM-dd HH:mm";

    public final static String format_yyyyMMddhh = "yyyy-MM-dd HH";

    public final static String format_yyyyMMdd = "yyyy-MM-dd";

    public final static String format_dd_hh = "dd-HH";

    public final static String format_MM_dd = "MM-dd";

    public final static String format_yy_MM = "yy-MM";

    public final static String format_hhmmss = "HH:mm:ss";

    public final static String format_hhmm = "HH:mm";

    public final static String format_ss = "ss";

    public final static String format_mm = "mm";

    public final static String format_hh = "HH";

    public final static String format_dd = "dd";

    public final static String format_MM = "MM";


    //日期转字符串
    public static String formatDateToString(Date date, String formatDate) {
    
    
        if (date == null) {
    
    
            return null;
        }
        @SuppressLint("SimpleDateFormat") DateFormat format = new SimpleDateFormat(formatDate);
        String resStr = format.format(date);
        return resStr;
    }

    //字符串转日期
    public static Date formatStringToDate(String dateStr, String formatDate) {
    
    
        if (dateStr == null) {
    
    
            return null;
        }
        @SuppressLint("SimpleDateFormat") DateFormat format = new SimpleDateFormat(formatDate);
        Date date = null;
        try {
    
    
            date = format.parse(dateStr);
        } catch (ParseException e) {
    
    
            e.printStackTrace();
        }
        return date;
    }

    //时间格式转换
    public static String convertDateFormatOfString(String dateStr, String oldFormatDate, String newFormatDate) {
    
    
        if (dateStr == null) {
    
    
            return null;
        }
        @SuppressLint("SimpleDateFormat") DateFormat format = new SimpleDateFormat(oldFormatDate);
        Date date = null;
        try {
    
    
            date = format.parse(dateStr);
        } catch (ParseException e) {
    
    
            e.printStackTrace();
        }

        String resStr = null;
        @SuppressLint("SimpleDateFormat") DateFormat format1 = new SimpleDateFormat(newFormatDate);
        if (date != null) {
    
    
            resStr = format1.format(date);
        }
        return resStr;
    }

    //获得分裂的时间
    public static String getFormat_hhmmssSplit(String dateStr, String formatDate) {
    
    
        if (dateStr == null) {
    
    
            return null;
        }

        String[] timeArray = dateStr.split(":");
        if (timeArray.length < 3) {
    
    
            return null;
        }

        String temp;
        switch (formatDate) {
    
    
            case format_hh:
                temp = timeArray[0];
                break;
            case format_mm:
                temp = timeArray[1];
                break;
            default:
                temp = timeArray[3];
        }
        return temp;
    }

    //时间比较
    public static int dateCompare(Date date1, Date date2) {
    
    
        if (date1 == null || date2 == null) {
    
    
            return -1;
        }
        return date1.compareTo(date2);
    }

    public static int dateCompare(String date1, String date2, String formatDate) {
    
    
        if (date1 == null || date2 == null || formatDate == null) {
    
    
            return -1;
        }
        Date d1 = formatStringToDate(date1, formatDate);
        Date d2 = formatStringToDate(date2, formatDate);
        return dateCompare(d1, d2);
    }


    // 将时间戳转为字符串
    public static String getStrTime(String cc_time, String pattern) {
    
    
        String re_StrTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        long lcc_time = Long.parseLong(cc_time);
        re_StrTime = sdf.format(new Date(lcc_time * 1000L));
        return re_StrTime;
    }


    /*
     * 将时间转换为时间戳  https://blog.51cto.com/u_14523369/6123756
     */
    public static String dateToStamp(String time) throws ParseException {
    
    
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = simpleDateFormat.parse(time);
        long ts = date.getTime();
        return String.valueOf(ts);
    }

    /*
     * 将时间戳转换为时间   https://blog.51cto.com/u_14523369/6123756
     */
    public static String stampToDate(long timeMillis, String pattern) {
    
    
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        Date date = new Date(timeMillis);
        return simpleDateFormat.format(date);
    }


    /**
     * long型转换为日期时间型
     *
     * @param longtime
     * @return
     */
    public static Date getTimeYMDHHmmss(long longtime) throws ParseException {
    
    
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //long转Date
        Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sd.format(new Date(longtime)));
        return date;

    }

    /**
     * 将cst时间格式转化为正常日期
     *
     * @param da
     * @return
     * @throws ParseException
     */
    public static String getcst(Date da) throws ParseException {
    
    
        SimpleDateFormat sim1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        SimpleDateFormat sim2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s1 = String.valueOf(da);
        Date dates = sim1.parse(s1);
        String f = sim2.format(dates);
        return f;

    }

    /**
     * 日期类型转换为long型
     *
     * @param formatTime
     * @return
     */
    public static Long getLongDate(String formatTime, String pattern) {
    
    
        long time = 0;
        try {
    
    
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            Date parse = sdf.parse(formatTime);

            time = parse.getTime();
        } catch (ParseException e) {
    
    
            e.printStackTrace();
        }
        return time;
    }

    /**
     * string转date类型
     *
     * @param str
     * @return
     * @throws ParseException
     */
    public static Date StringToDate(String str) throws ParseException {
    
    
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = (Date) formatter.parse(str);
        return date;
    }

    /**
     * 获取当前日期时间戳
     *
     * @return
     */
    public static long curTimeMillis() {
    
    
        return System.currentTimeMillis();
    }

    /**
     * 获取当前日期时间戳
     *
     * @return
     */
    public static long curTimeMillis_3m() {
    
    
        return System.currentTimeMillis() - 1000 * 60;
    }

    //----------------获取前一段时间-------------------------------------------------------------------

    /**
     * 获取前一天日期,格式为20220815
     *
     * @return
     */
    public static String getYesterdayDateString() {
    
    
        //Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);
        SimpleDateFormat dateFormat = new SimpleDateFormat(format_yyyyMMddhh);
        return dateFormat.format(calendar.getTime());
    }

    /**
     * 获取前一个月日期,格式为20220815
     *
     * @return
     */
    public static String getYesterdayMonthString() {
    
    
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH , -1);
        SimpleDateFormat dateFormat = new SimpleDateFormat(format_yyyyMMddhh);
        return dateFormat.format(calendar.getTime());
    }

    /**
     * 获取前一个年日期,格式为20220815
     *
     * @return
     */
    public static String getYesterdayYearString() {
    
    
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR, -1);
        SimpleDateFormat dateFormat = new SimpleDateFormat(format_yyyyMMddhh);
        return dateFormat.format(calendar.getTime());
    }

    //--------------------获取单独时间----------------------------------------------------------------

    public static String getCalendar() {
    
    
        Calendar calendar = Calendar.getInstance();
        // 获取当前年
        int year = calendar.get(Calendar.YEAR);
        // 获取当前月
        int month = calendar.get(Calendar.MONTH) + 1;
        // 获取当前日
        int day = calendar.get(Calendar.DATE);
        // 获取当前小时
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        // 获取当前分钟
        int minute = calendar.get(Calendar.MINUTE);
        // 获取当前秒
        int second = calendar.get(Calendar.SECOND);
        // 获取当前是本周第几天
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        // 获取当前是本月第几天
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
        // 获取当前是本年第几天
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);

        return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒";
    }

    // 获取当前年
    public static int getCalendar_year() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.YEAR);
    }

    // 获取当前月
    public static int getCalendar_month() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.MONTH) + 1;
    }

    // 获取当前日
    public static int getCalendar_day() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.DATE);
    }

    // 获取当前小时
    public static int getCalendar_hour() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.HOUR_OF_DAY);
    }

    // 获取当前分钟
    public static int getCalendar_minute() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.MINUTE);
    }

    // 获取当前秒
    public static int getCalendar_second() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.SECOND);
    }

    // 获取当前是本周第几天
    public static int getCalendar_dayOfWeek() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.DAY_OF_WEEK);
    }

    // 获取当前是本月第几天
    public static int getCalendar_dayOfMonth() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.DAY_OF_MONTH);
    }

    // 获取当前是本年第几天
    public static int getCalendar_dayOfYear() {
    
    
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.DAY_OF_YEAR);
    }

//--------------------整点毫秒------------------------------------------------------------------------

    /**
     * 获取当前时间的整点的时间戳(毫秒)
     *
     * @return
     */
    public static Long getIntegralPoint() {
    
    
        Date date = new Date();
        Calendar ca = Calendar.getInstance();
        ca.set(Calendar.MINUTE, 0);
        ca.set(Calendar.SECOND, 0);
        ca.set(Calendar.MILLISECOND, 0);
        date = ca.getTime();
        return date.getTime();
    }

    /**
     * 获取当天时间的0点的时间戳(毫秒)
     *
     * @return
     */
    public static Long getTodayZero() {
    
    
        Date date = new Date();
        Calendar ca = Calendar.getInstance();
        ca.set(Calendar.DECEMBER, 0);
        ca.set(Calendar.MINUTE, 0);
        ca.set(Calendar.SECOND, 0);
        ca.set(Calendar.MILLISECOND, 0);
        date = ca.getTime();
        return date.getTime();
    }

    /**
     * 获取当天时间的0点的时间戳(秒)
     *
     * @return
     */
    public static Long getTodayZeroMiao() {
    
    
        Date date = new Date();
        Calendar ca = Calendar.getInstance();
        ca.set(Calendar.DECEMBER, 0);
        ca.set(Calendar.MINUTE, 0);
        ca.set(Calendar.SECOND, 0);
//        ca.set(Calendar.MILLISECOND,0);
        long timeInMillis = ca.getTimeInMillis();
        return (timeInMillis / 1000);
    }

    /**
     * 格式化时间   时分秒毫秒均变为0
     *
     * @param dates 传入的时间
     * @return
     */
    public static Long getTodayZero(Date dates) {
    
    
        Calendar ca = Calendar.getInstance();
        ca.setTime(dates);
        ca.set(Calendar.DECEMBER, 0);
        ca.set(Calendar.MINUTE, 0);
        ca.set(Calendar.SECOND, 0);
        ca.set(Calendar.MILLISECOND, 0);
        dates = ca.getTime();
        return dates.getTime();
    }

}

Guess you like

Origin blog.csdn.net/ZQ200720/article/details/131737451