日期操作类DateUtils

本文介绍了一个实用的Java工具类,该类提供了多种日期时间操作的方法,如获取当前日期时间、格式化日期、计算过去时间等。这些方法有助于简化开发过程中涉及到日期时间处理的常见任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package cn.toto.bigdata.loganalyzer.storm.utils;

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

/**
 * 代码说明
 *
 * @author tuzq
 * @create 2017-06-25 21:03
 */
public class DateUtils {

    /**
     * 根据 formatter格式返回系统日期
     *
     * @param formatter
     * @return
     */
    public static String getDateTime(String formatter) {
        SimpleDateFormat df = new SimpleDateFormat(formatter);
        return df.format(new Date());
    }

    public static String getDataTime(Calendar calendar) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return formatter.format(calendar.getTime());
    }

    public static String before15Minute(Calendar calendar) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        calendar.add(Calendar.MINUTE, -15);
        return formatter.format(calendar.getTime());
    }

    public static String before30Minute(Calendar calendar) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        calendar.add(Calendar.MINUTE, -30);
        return formatter.format(calendar.getTime());
    }

    public static String beforeOneHour(Calendar calendar) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        calendar.add(Calendar.MINUTE, -60);
        return formatter.format(calendar.getTime());
    }

    public static String beforeOneDay(Calendar calendar) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        return formatter.format(calendar.getTime());
    }

    public static String getDateTime() {
        return DateUtils.getDateTime("yyyy-MM-dd HH:mm:ss");
    }

    public static String getDate() {
        return getDateTime("yyyy-MM-dd").replaceAll("-", "");
    }

    public static String getDate(String formatter) {
        return getDateTime(formatter);
    }

    public static String removeTime(String dateTime) {
        return dateTime.substring(0, dateTime.indexOf(" "));
    }

    /**
     * 获取指定时间之前minute的时间  例如:minute = 30, 2014-07-15 12:00:00 ->  2014-07-15 11:30:00
     *
     * @param time
     * @return
     */
    public static String getBeforeMinute(String time, int minute) {
        String result = time;
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date myDate = formatter.parse(time);
            Calendar c = Calendar.getInstance();
            c.setTime(myDate);
            c.add(Calendar.MINUTE, -minute);
            myDate = c.getTime();
            result = formatter.format(myDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 截取日期 yyyyMMdd
     *
     * @param date
     * @return
     */
    public static String splitDate(String date) {
        return date.substring(0, date.indexOf(" ")).replace("-", "");
    }

    /**
     * 替换{}中的变量
     *
     * @param data
     * @param key
     * @param newData
     * @return
     */
    public static String replaceParentheses(String data, String key, String newData) {
        return data.replaceAll("\\{" + key + "\\}", newData);
    }

    public static String replaceParentheses(String data, String key) {
        return data.replaceAll("\\{" + key + "\\}", "");
    }

    /**
     * 格式化double,不使用科学计数法
     *
     * @param doubleValue
     * @param fractionDigits
     * @return
     */
    public static String formatDouble(String doubleValue, int fractionDigits) {
        NumberFormat nf = NumberFormat.getInstance();
        nf.setGroupingUsed(false);
        nf.setMaximumFractionDigits(fractionDigits);
        return nf.format(Double.parseDouble(doubleValue));
    }

    public static String formatDouble(double doubleValue, int fractionDigits) {
        NumberFormat nf = NumberFormat.getInstance();
        nf.setGroupingUsed(false);
        nf.setMaximumFractionDigits(fractionDigits);
        return nf.format(doubleValue);
    }

    public static String formatDouble(String doubleValue) {
        NumberFormat nf = NumberFormat.getInstance();
        nf.setGroupingUsed(false);
        nf.setMaximumFractionDigits(2);
        return nf.format(Double.parseDouble(doubleValue));
    }

    public static String formatDouble(double doubleValue) {
        NumberFormat nf = NumberFormat.getInstance();
        nf.setGroupingUsed(false);
        nf.setMaximumFractionDigits(2);
        return nf.format(doubleValue);
    }

    public static String getInt(Object str) {
        return Integer.toString(Integer.parseInt(str.toString().replaceAll("\\.\\d+", "")));
    }

    public static String getYesterday(String formatter) {
        SimpleDateFormat df = new SimpleDateFormat(formatter);
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);
        return df.format(calendar.getTime());
    }

    public static void main(String[] args) {
        System.out.print(getDate());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值