import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;

public class DateUtil {
    public static final String DATETIME = "yyyy-MM-dd HH:mm:ss";
    public static final String DATE = "yyyy-MM-dd";

public DateUtil() {
    }

public static String datetimeToStr(Date date, String format) {
        if (date == null) {
            return null;
        } else {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
    }

public static String dateTimeToStr(Date date) {
        return datetimeToStr(date, "yyyy-MM-dd HH:mm:ss");
    }

public static String dateToStr(Date date) {
        return datetimeToStr(date, "yyyy-MM-dd");
    }

public static String dateToStr(Date date, String format) {
        return datetimeToStr(date, format);
    }

public static String getCurrentDate() {
        return (new SimpleDateFormat("yyyy-MM-dd")).format(new Date());
    }

public static String getCurrentDate(String format) {
        return (new SimpleDateFormat(format)).format(new Date());
    }

public static String getCurrentDatetime() {
        return (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date());
    }

public static String getCurrentDatetime(String format) {
        return (new SimpleDateFormat(format)).format(new Date());
    }

public static int getCurrentTimeHashCode() {
        return String.valueOf(System.currentTimeMillis()).hashCode();
    }

public static Date getDateBegin(Date date) {
        SimpleDateFormat ymdFormat = new SimpleDateFormat("yyyy-MM-dd");
        if (date != null) {
            try {
                return DateFormat.getDateInstance(2, Locale.CHINA).parse(ymdFormat.format(date));
            } catch (ParseException var3) {
                System.err.println("DataFromat error");
            }
        }

return null;
    }

public static Date getDateEnd(Date date) {
        SimpleDateFormat ymdFormat = new SimpleDateFormat("yyyy-MM-dd");
        if (date != null) {
            try {
                Date endDate = strToDate(ymdFormat.format(new Date(date.getTime() + 86400000L)));
                endDate = new Date(endDate.getTime() - 1000L);
                return endDate;
            } catch (Exception var3) {
                System.err.println("DataFromat error");
            }
        }

return null;
    }

public static long getNow() {
        return System.currentTimeMillis();
    }

public static String getTime() {
        Date d = new Date();
        String re = datetimeToStr(d, "yyyyMMddHHmmssSSS");
        return re;
    }

public static String getTime(String format) {
        Date d = new Date();
        String re = datetimeToStr(d, format);
        return re;
    }

public static Date strToFormatDate(String date, String format) {
        if (date == null) {
            return null;
        } else {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.parse(date, new ParsePosition(0));
        }
    }

public static Date strToDate(String date) {
        return strToFormatDate(date, "yyyy-MM-dd");
    }

public static final Date strToDate(String dateStr, String format) {
        return strToFormatDate(dateStr, format);
    }

public static Date strToDateTime(String date) {
        return strToFormatDate(date, "yyyy-MM-dd HH:mm:ss");
    }

public static Date strToDateTime(String date, String format) {
        return strToFormatDate(date, format);
    }

public static Timestamp strToTimestamp(String str) throws Exception {
        if (StringUtils.isEmpty(str)) {
            throw new Exception("转换错误");
        } else {
            return str.trim().length() > 10 ? new Timestamp((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(str).getTime()) : new Timestamp((new SimpleDateFormat("yyyy-MM-dd")).parse(str).getTime());
        }
    }

public static Timestamp strToTimestamp(String sDate, String sFormat) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
        Date t = sdf.parse(sDate);
        return new Timestamp(t.getTime());
    }

public static boolean validateExpireDate(long timeMillis, long expireTimeMillis) {
        return getNow() - timeMillis > expireTimeMillis;
    }

public static String getHHmmssSSS() {
        Date d = new Date();
        return getHHmmssSSS(d);
    }

public static String getHHmmssSSS(Date d) {
        int hh = Integer.valueOf(datetimeToStr(d, "HH"));
        int mm = Integer.valueOf(datetimeToStr(d, "mm"));
        int ss = Integer.valueOf(datetimeToStr(d, "ss"));
        int sss = Integer.valueOf(datetimeToStr(d, "SSS"));
        int time = 0;
        if (hh != 0) {
            time += hh * 60 * 60 * 1000;
        }

if (mm != 0) {
            time += mm * 60 * 1000;
        }

if (ss != 0) {
            time += ss * 1000;
        }

if (sss != 0) {
            time += sss;
        }

String str;
        for(str = String.valueOf(time); str.length() < 8; str = "0" + str) {
            ;
        }

return str;
    }

public static Date caculateDate(Date date, Integer count, int status) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(status, calendar.get(status) + count);
        return calendar.getTime();
    }

public static int caculateDaysNumber(int year, int month) {
        Calendar cal = Calendar.getInstance();
        cal.set(1, year);
        cal.set(2, month - 1);
        return cal.getActualMaximum(5);
    }

public static Date caculateDateByNextBaseMonth(Date now, Integer month) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(now);
        cal.set(2, cal.get(2) + month + NumberUtils.INTEGER_ONE);
        cal.set(5, NumberUtils.INTEGER_ZERO);
        return cal.getTime();
    }

public static Date caculateFinallyDatebyDateType(Date date, int dateType, int dateNumber) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        switch(dateType) {
        case 1:
            calendar.add(dateType, dateNumber + 1);
            calendar.set(2, 0);
            calendar.set(5, NumberUtils.INTEGER_ZERO);
            break;
        case 2:
            calendar.add(2, dateNumber + 1);
            calendar.set(5, NumberUtils.INTEGER_ZERO);
            break;
        case 3:
        case 4:
        default:
            throw new RuntimeException("dateType value error");
        case 5:
            calendar.add(5, dateNumber);
        }

return calendar.getTime();
    }

public static int compareTime(String dateTime1, String dateTime2) {
        if (!StringUtils.isEmpty(dateTime1) && !StringUtils.isEmpty(dateTime1)) {
            DateFormat df = null;
            if (dateTime1.length() == 10 && dateTime2.length() == 10) {
                df = new SimpleDateFormat("yyyy-MM-dd");
            } else {
                if (dateTime1.length() != 19 || dateTime2.length() != 19) {
                    return 2;
                }

df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            }

Calendar c1 = Calendar.getInstance();
            Calendar c2 = Calendar.getInstance();

try {
                c1.setTime(df.parse(dateTime1));
                c2.setTime(df.parse(dateTime2));
            } catch (ParseException var6) {
                System.err.println("格式不正确");
            }

int result = c1.compareTo(c2);
            return result;
        } else {
            return 2;
        }
    }

public static void main(String[] args) {
        Date now = new Date();
        String nowStr = dateTimeToStr(now);
        System.out.println(nowStr);
        Date fDate = caculateFinallyDatebyDateType(now, 10, 3);
        System.out.println(dateTimeToStr(fDate));
    }
}

java时间操作工具类的更多相关文章

  1. java/javascript 时间操作工具类

    一.java 时间操作工具类 import org.springframework.util.StringUtils; import java.text.ParseException; import ...

  2. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  3. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  4. JavaScript时间操作工具类

    /** * 时间操作工具类 * * @author zwq * */ var TimeFrameUtil = { /** * 格式化日期 * @param date {Date} 日期 * @para ...

  5. docker 部署vsftpd服务、验证及java ftp操作工具类

    docker部署vsftpd服务 新建ftp文件存储目录/home/ftp cd /home mkdir ftp 创建一个组,用于存放ftp用户 groupadd ftpgroups 创建ftp用户, ...

  6. Java时间处理类LocalDate和LocalDateTime常用方法

    Java时间处理类LocalDate和LocalDateTime常用方法 https://blog.csdn.net/weixin_42579074/article/details/93721757

  7. Java时间转换类实现

    Java时间类型非常的差,首先版本问题,本人使用java在Android平台开发.很多Data类的方法已经不提倡使用,一个时间,居然要使用Calendar.DateFormat等类共同编码,非常麻烦. ...

  8. 超详细的Java时间工具类

    package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...

  9. JAVA文件操作工具类(读、增、删除、复制)

    使用JAVA的JFinal框架 1.上传文件模型类UploadFile /** * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). * ...

随机推荐

  1. orcale 之函数

    我们知道存储过程的调用是一条 PL/SQL 语句.那么对于一些表达式我们用什么呢?这里函数的功能就会体现出来了. 函数和过程在创建方式上有很多的类似地方,也是编译后放入内存中以供用户使用,只不过函数调 ...

  2. Java入门系列-22-IO流

    File类的使用 Java程序如何访问文件?通过 java.io.File 类 使用File类需要先创建文件对象 File file=new File(String pathname);,创建时在构造 ...

  3. C#中引用类型和值类型的区别,分别有哪些

    C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型. C#的引用类型包括:数组,用户定义的类.接口.委托,object,字符串. 数组的元素,不管是引用类型还是值类型, ...

  4. SpringCloud实战之初级入门(一)— eureka注册中心

    目录 写在前面 1.资料目录 2.环境介绍 3.eureka注册中心 3.1 创建工程 3.2 启动工程 5.eureka注册中心集群高可用 6.结语 7.一点点重要的事情 写在前面 我在软件行业浸泡 ...

  5. Linux From Scratch(从零开始构建Linux系统,简称LFS)(一)

    一. 准备工作 1. 需要一个Linux宿主系统,例如早先版本的 LFS,Ubuntu/Fedora,SuSE 或者是在你的架构上可以运行的其它发行版 如果想实现Win7与Linux双系统,可参考我的 ...

  6. 为什么分布式一定要有redis?(转)

    为什么分布式一定要有redis? 程序员小灰 6天前 点击上方“程序员小灰”,选择“置顶公众号” 有趣有内涵的文章第一时间送达! 作者:孤独烟 来自:http://rjzheng.cnblogs.co ...

  7. js数组方法 改变原数组和不改变原数组的方法整理

    改变原数组: pop():   删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值 ...

  8. The Willpower Instinct(自控力,意志力)

    下面是我这几天在读斯坦福大学麦格尼格尔教授的<自控力>这本书的过程中摘抄的部分经典句子,发人深思!有助于帮助我们更好的了解自己. 00 导言:欢迎进入意志力入门 意志力:控制自己的注意力. ...

  9. VC++ 6.0如何创建与调用动态链接库

    原文:http://blog.csdn.net/wanghaihao_1/article/details/51098451 1.静态链接库与动态链接库区别: 静态链接库:lib中的指令被直接包含在最终 ...

  10. 用C语言指针作为函数返回值

    转载:http://c.biancheng.net/cpp/html/3242.html C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlon ...