Android 時間ツール DateUtils は時間をタイムスタンプに転送して、個別の年、月、日、時、分、秒、ミリ秒を取得します。

時間をタイムスタンプに変換して、個々の年、月、日、時、分、秒、ミリ秒を取得します。

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();
    }

}

おすすめ

転載: blog.csdn.net/ZQ200720/article/details/131737451