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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值