`

java时间上的处理类

阅读更多
public class DateUtils {   
  
    /**  
     * 获取当前时间日期的字符串   
     */  
    public static String getCurrentDateStr(DateFormatType dateFormatType) {   
        Date date = getCurrentDate();   
        return (String) OpearationDate(date, dateFormatType.getValue());   
    }   
  
    /**  
     * 时间、日期格式化成字符串  
     */  
    public static String formatDate(Date date, DateFormatType dateFormatType) {   
        return (String) OpearationDate(date, dateFormatType.getValue());   
    }   
  
    /**  
     * 从字符串解析成时间、日期  
     */  
    public static Date parseDate(String dateStr, DateFormatType dateFormatType) {   
        return (Date) OpearationDate(dateStr, dateFormatType.getValue());   
    }   
  
    /**  
     * 获取当前系统时间(原始格式)  
     */  
    public static Date getCurrentDate() {   
        Date date = new Date(System.currentTimeMillis());   
        return date;   
    }   
  
    /**  
     * 获取当前日期的年、月、日、时、分、秒  
     */  
    public static int getCurrentTime(TimeFormatType timeFormatType) {   
        return getTime(getCurrentDate(), timeFormatType);   
    }   
  
    /**  
     * 获取指定日期的年、月、日、时、分、秒  
     */  
    public static int getTime(Date date, TimeFormatType timeFormatType) {   
        try {   
            Calendar c = Calendar.getInstance();   
            c.setTime(date);   
            int type = timeFormatType.getValue();   
            int i = c.get(type);   
            return type == 2 ? i + 1 : i;   
        } catch (Exception e) {   
            throw new RuntimeException("获取失败", e);   
        }   
    }   
  
    /**  
     * 获取指定日期的毫秒数  
     */  
    public static long getMillis(Date date) {   
        java.util.Calendar c = java.util.Calendar.getInstance();   
        c.setTime(date);   
        return c.getTimeInMillis();   
    }   
  
    /**  
     * 日期相加、减操作  
     *   
     * 所返回结果单位为:天数  
     */  
    public static int operationDate(Date date, Date diffDate, DateOperationType dateOperationType) {   
        long add = getMillis(date) + getMillis(diffDate);   
        long diff = getMillis(date) - getMillis(diffDate);   
        return (int) ((dateOperationType.getValue() ? add : diff) / (24 * 3600 * 1000));   
    }   
  
    /**  
     * 日期月份相加、减操作  
     */  
    public static Date operationDateOfMonth(Date date, int month, DateOperationType dateOperationType) {   
        Calendar c = Calendar.getInstance();   
        c.setTime(date);   
        c.add(Calendar.MONTH, dateOperationType.getValue() ? month : month - (month * 2));   
        return c.getTime();   
    }   
  
    /**  
     * 日期天数相加、减操作  
     */  
    public static Date operationDateOfDay(Date date, int day, DateOperationType dateOperationType) {   
        Calendar c = Calendar.getInstance();   
        c.setTime(date);   
        long millis = c.getTimeInMillis();   
        long millisOfday = day * 24 * 3600 * 1000;   
        long sumMillis = dateOperationType.getValue() ? (millis + millisOfday) : (millis - millisOfday);   
        c.setTimeInMillis(sumMillis);   
        return c.getTime();   
    }   
  
    private static Object OpearationDate(Object object, String formatStr) {   
        if (object == null || null == formatStr || "".equals(formatStr)) {   
            throw new RuntimeException("参数不能为空");   
        }   
        SimpleDateFormat format = new SimpleDateFormat(formatStr);   
        try {   
            if (object instanceof Date)   
                return format.format(object);   
            else  
                return format.parse(object.toString());   
        } catch (Exception e) {   
            throw new RuntimeException("操作失败", e);   
        }   
  
    }   
  
    public enum DateOperationType {   
  
        /**  
         * 加操作  
         */  
        ADD(true),   
  
        /**  
         * 减操作  
         */  
        DIFF(false);   
  
        private final boolean value;   
  
        DateOperationType(boolean operation) {   
            this.value = operation;   
        }   
  
        public boolean getValue() {   
            return value;   
        }   
    }   
  
    public enum TimeFormatType {   
  
        YEAR(1), MONTH(2), DAY(5), HOUR(11), MINUTE(12), SECOND(13);   
        private final int value;   
  
        TimeFormatType(int formatStr) {   
            this.value = formatStr;   
        }   
  
        public int getValue() {   
            return value;   
        }   
    }   
  
    public enum DateFormatType {   
        /**  
         * 格式为:yyyy-MM-dd HH:mm:ss  
         */  
        DATE_FORMAT_STR("yyyy-MM-dd HH:mm:ss"),   
        /**  
         * 格式为:yyyyMMddHHmmss  
         */  
        SIMPLE_DATE_TIME_FORMAT_STR("yyyyMMddHHmmss"),   
  
        /**  
         * 格式为:yyyy-MM-dd  
         */  
        SIMPLE_DATE_FORMAT_STR("yyyy-MM-dd"),   
  
        /**  
         * 格式为:yyyy/MM/dd  
         */  
        SIMPLE_DATE_FORMAT_VIRGULE_STR("yyyy/MM/dd"),   
  
        /**  
         * 格式为:HH:mm:ss  
         */  
        HOUR_MINUTE_SECOND("HH:mm:ss"),   
  
        /**  
         * 格式为:HH:mm  
         */  
        HOUR_MINUTE("HH:mm");   
  
        private final String value;   
  
        DateFormatType(String formatStr) {   
            this.value = formatStr;   
        }   
  
        public String getValue() {   
            return value;   
        }   
    }   
}  

 

分享到:
评论

相关推荐

    java时间处理类

    提供友好的时间处理接口,方便处理java时间相关问题

    java时间工具类,基本上全面的包括常用的关于时间的处理

    Java时间工具类是Java开发中不可或缺的一部分,它们提供了一系列方便的方法来处理日期和时间,使得开发者可以更加高效地进行时间相关的操作。在这个简单的DateUtil.java工具类中,我们可以期待找到一些基本但实用的...

    java 时间各种处理

    java 时间各种处理,java 时间各种处理java 时间各种处理java 时间各种处理java 时间各种处理java 时间各种处理

    java语言时间异常类

    在Java中,时间处理主要涉及到`java.util.Date`、`java.time`包(Java 8及以后版本)以及`java.text.SimpleDateFormat`等类。然而,当涉及时间计算或转换时,可能会遇到超出合理范围的情况,例如尝试创建一个超出24...

    java中的日期处理类总结

    Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...

    java工具类,日志处理类

    这些工具方法可能涵盖异常处理、日志记录、字符串操作、日期时间处理、集合操作等多个方面,它们被设计为可复用的模块,以提升代码的重用性和开发效率。 总结来说,这个压缩包提供的内容涵盖了Java编程中的几个核心...

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

    在Java编程语言中,日期和时间处理是常见且重要的任务。Java提供了多种工具类来帮助开发者处理日期和时间,使得我们可以方便地进行日期计算、格式化以及解析等操作。本篇将围绕Java中的日期工具类和时间工具类展开...

    java国际化&时间处理

    总的来说,Java的国际化和时间处理涉及多个类和接口,需要熟练掌握`Locale`、`ResourceBundle`、`SimpleDateFormat`(及其替代品`java.time`包)以及`ZoneId`等。理解这些概念并合理运用,可以帮助开发者构建出符合...

    DateUtil.java 时间日期处理工具类

    包含"yyyy-MM-dd"、"yyyy-MM-dd HH:mm:ss"、"yyyyMMdd"、"yyyyMMddHHmmss"、"yyyy-MM"、"yyyyMM"等时间格式的转换。 其中: 1.String转Timestamp stringToTimestamp(String dateStr); 2.比较传入时间与当前时间前一...

    基于JAVA的周期时间处理工具包

    本工具包主要是基于JAVA的底层时间类的处理周期时间的工具包,主要用于处理并得到周期性提醒的时间,比如说您想要在每天8:10、每月1号8:20、每周三8:30、每10分钟、每3小时、每季度第一个月1号8:10等等处理一项...

    Java日期时间处理类 date4j

    Java日期时间处理在编程中是一项常见任务,但Java标准库中的`java.util.Date`和`Calendar`类在使用上往往被认为复杂且不直观。为了解决这个问题,`date4j`库应运而生,它提供了更为简洁和现代的方式来处理日期和时间...

    java操作时间工具类

    总结来说,Java中的日期时间处理涉及到多个类和API,从早期的`Date`和`SimpleDateFormat`到Java 8引入的`java.time`包,都有各自的特点和应用场景。而`TimeFormat.java`这样的工具类,则是对这些功能的封装和简化,...

    java对时间的处理类

    java对date的各种处理 返回各种时间形式

    JAVA时间通用集合类

    通过`ToolKit.java`的学习,我们可以更好地掌握Java时间处理的实用技巧,从而提升编程效率。 总之,Java的日期和时间API提供了一套强大且易用的工具,用于处理各种时间相关任务。无论是简单的日期操作还是复杂的...

    java 时间类

    这篇博客文章和相关的文档"java时间格式大全.doc"可能涵盖了Java中处理时间的各种方法和API。这里,我们将深入探讨Java时间类的重要概念、常见用法以及如何进行日期和时间的操作。 首先,Java中的`java.util.Date`...

    java常用的工具类整理28个

    5. **java.time.***(Java 8及以上):包括`LocalDate`、`LocalTime`、`LocalDateTime`等,提供了更强大和直观的日期时间处理。 6. **java.io.File**:文件操作类,可以创建、删除、重命名文件,获取文件属性等。 ...

    JAVA处理日期时间常用方法

    Java中的日期和时间处理是程序开发中常见的任务,涉及到各种日期和时间的计算、格式化以及比较等操作。在Java中,主要使用`java.util.Date`、`java.util.Calendar`和`java.text.SimpleDateFormat`这三个核心类来处理...

    最全Java常用日期处理工具类

    该Java工具类调用时只需要类名.方法即可调用。 1.返回纯数字的年月日时分秒时间戳:20191008103656 4.在日期上增加数个整月 5.在日期上增加天数 6.在日期上增加n分钟 7.两个时间相差距离多少天多少小时...

    java时间处理类,

    提供各种时间操作,格式化时间格式,时间格式的转换.

Global site tag (gtag.js) - Google Analytics