`
lzkyo
  • 浏览: 468399 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分享一个关于日期常用操作工具类

    博客分类:
  • Java
阅读更多
  1. public class DateUtils {   
  2.   
  3.     /**  
  4.      * 获取当前时间日期的字符串   
  5.      */  
  6.     public static String getCurrentDateStr(DateFormatType dateFormatType) {   
  7.         Date date = getCurrentDate();   
  8.         return (String) OpearationDate(date, dateFormatType.getValue());   
  9.     }   
  10.   
  11.     /**  
  12.      * 时间、日期格式化成字符串  
  13.      */  
  14.     public static String formatDate(Date date, DateFormatType dateFormatType) {   
  15.         return (String) OpearationDate(date, dateFormatType.getValue());   
  16.     }   
  17.   
  18.     /**  
  19.      * 从字符串解析成时间、日期  
  20.      */  
  21.     public static Date parseDate(String dateStr, DateFormatType dateFormatType) {   
  22.         return (Date) OpearationDate(dateStr, dateFormatType.getValue());   
  23.     }   
  24.   
  25.     /**  
  26.      * 获取当前系统时间(原始格式)  
  27.      */  
  28.     public static Date getCurrentDate() {   
  29.         Date date = new Date(System.currentTimeMillis());   
  30.         return date;   
  31.     }   
  32.   
  33.     /**  
  34.      * 获取当前日期的年、月、日、时、分、秒  
  35.      */  
  36.     public static int getCurrentTime(TimeFormatType timeFormatType) {   
  37.         return getTime(getCurrentDate(), timeFormatType);   
  38.     }   
  39.   
  40.     /**  
  41.      * 获取指定日期的年、月、日、时、分、秒  
  42.      */  
  43.     public static int getTime(Date date, TimeFormatType timeFormatType) {   
  44.         try {   
  45.             Calendar c = Calendar.getInstance();   
  46.             c.setTime(date);   
  47.             int type = timeFormatType.getValue();   
  48.             int i = c.get(type);   
  49.             return type == 2 ? i + 1 : i;   
  50.         } catch (Exception e) {   
  51.             throw new RuntimeException("获取失败", e);   
  52.         }   
  53.     }   
  54.   
  55.     /**  
  56.      * 获取指定日期的毫秒数  
  57.      */  
  58.     public static long getMillis(Date date) {   
  59.         java.util.Calendar c = java.util.Calendar.getInstance();   
  60.         c.setTime(date);   
  61.         return c.getTimeInMillis();   
  62.     }   
  63.   
  64.     /**  
  65.      * 日期相加、减操作  
  66.      *   
  67.      * 所返回结果单位为:天数  
  68.      */  
  69.     public static int operationDate(Date date, Date diffDate, DateOperationType dateOperationType) {   
  70.         long add = getMillis(date) + getMillis(diffDate);   
  71.         long diff = getMillis(date) - getMillis(diffDate);   
  72.         return (int) ((dateOperationType.getValue() ? add : diff) / (24 * 3600 * 1000));   
  73.     }   
  74.   
  75.     /**  
  76.      * 日期月份相加、减操作  
  77.      */  
  78.     public static Date operationDateOfMonth(Date date, int month, DateOperationType dateOperationType) {   
  79.         Calendar c = Calendar.getInstance();   
  80.         c.setTime(date);   
  81.         c.add(Calendar.MONTH, dateOperationType.getValue() ? month : month - (month * 2));   
  82.         return c.getTime();   
  83.     }   
  84.   
  85.     /**  
  86.      * 日期天数相加、减操作  
  87.      */  
  88.     public static Date operationDateOfDay(Date date, int day, DateOperationType dateOperationType) {   
  89.         Calendar c = Calendar.getInstance();   
  90.         c.setTime(date);   
  91.         long millis = c.getTimeInMillis();   
  92.         long millisOfday = day * 24 * 3600 * 1000;   
  93.         long sumMillis = dateOperationType.getValue() ? (millis + millisOfday) : (millis - millisOfday);   
  94.         c.setTimeInMillis(sumMillis);   
  95.         return c.getTime();   
  96.     }   
  97.   
  98.     private static Object OpearationDate(Object object, String formatStr) {   
  99.         if (object == null || null == formatStr || "".equals(formatStr)) {   
  100.             throw new RuntimeException("参数不能为空");   
  101.         }   
  102.         SimpleDateFormat format = new SimpleDateFormat(formatStr);   
  103.         try {   
  104.             if (object instanceof Date)   
  105.                 return format.format(object);   
  106.             else  
  107.                 return format.parse(object.toString());   
  108.         } catch (Exception e) {   
  109.             throw new RuntimeException("操作失败", e);   
  110.         }   
  111.   
  112.     }   
  113.   
  114.     public enum DateOperationType {   
  115.   
  116.         /**  
  117.          * 加操作  
  118.          */  
  119.         ADD(true),   
  120.   
  121.         /**  
  122.          * 减操作  
  123.          */  
  124.         DIFF(false);   
  125.   
  126.         private final boolean value;   
  127.   
  128.         DateOperationType(boolean operation) {   
  129.             this.value = operation;   
  130.         }   
  131.   
  132.         public boolean getValue() {   
  133.             return value;   
  134.         }   
  135.     }   
  136.   
  137.     public enum TimeFormatType {   
  138.   
  139.         YEAR(1), MONTH(2), DAY(5), HOUR(11), MINUTE(12), SECOND(13);   
  140.         private final int value;   
  141.   
  142.         TimeFormatType(int formatStr) {   
  143.             this.value = formatStr;   
  144.         }   
  145.   
  146.         public int getValue() {   
  147.             return value;   
  148.         }   
  149.     }   
  150.   
  151.     public enum DateFormatType {   
  152.         /**  
  153.          * 格式为:yyyy-MM-dd HH:mm:ss  
  154.          */  
  155.         DATE_FORMAT_STR("yyyy-MM-dd HH:mm:ss"),   
  156.         /**  
  157.          * 格式为:yyyyMMddHHmmss  
  158.          */  
  159.         SIMPLE_DATE_TIME_FORMAT_STR("yyyyMMddHHmmss"),   
  160.   
  161.         /**  
  162.          * 格式为:yyyy-MM-dd  
  163.          */  
  164.         SIMPLE_DATE_FORMAT_STR("yyyy-MM-dd"),   
  165.   
  166.         /**  
  167.          * 格式为:yyyy/MM/dd  
  168.          */  
  169.         SIMPLE_DATE_FORMAT_VIRGULE_STR("yyyy/MM/dd"),   
  170.   
  171.         /**  
  172.          * 格式为:HH:mm:ss  
  173.          */  
  174.         HOUR_MINUTE_SECOND("HH:mm:ss"),   
  175.   
  176.         /**  
  177.          * 格式为:HH:mm  
  178.          */  
  179.         HOUR_MINUTE("HH:mm");   
  180.   
  181.         private final String value;   
  182.   
  183.         DateFormatType(String formatStr) {   
  184.             this.value = formatStr;   
  185.         }   
  186.   
  187.         public String getValue() {   
  188.             return value;   
  189.         }   
  190.     }   
  191. }  
分享到:
评论

相关推荐

    java常用工具类集合(也有转自他人的)

    总结来说,"java常用工具类集合"是一个涵盖了多种实用工具类的资源,包括但不限于字符串处理、集合操作、日期时间、IO操作等多个方面。通过学习和应用这些工具类,开发者能够更高效地编写代码,同时也能从开源社区中...

    分享28个java常用的工具类源码打包下载

    本资源分享了28个Java常用的工具类源码,涵盖了多种实用功能,包括添加水印、文件上传、生成略缩图、文件操作、MD5加密、时间日期处理、字符串操作以及过滤器和数据导出到Excel。 1. **添加水印**:在图像处理中,...

    C#常用工具类代码集合Util(自己工作总结)

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。"MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的...

    JAVA常用工具类,一个五年开发经验的工程师上传的,但是要分我拿来1分让你们下载

    这个“Java常用工具类”压缩包,作为一个经验丰富的开发者分享的资源,无疑是提高开发效率、减少重复工作的好帮手。它可以帮助开发者快速集成和复用代码,减少错误,提高代码质量。在使用这些工具类时,注意阅读文档...

    分享一些java常用的工具类(源码) 非常实用

    1、常用的日期类操作 2、excel操作 3、xml操作 4、集成科大讯飞语言合成工具类; 5、集合类操作(list,map,array) 6、FTP工具类 7、csv操作 8、file文件类操作 9、拼音工具类 10、线程池 11、Unicode编码 12、...

    IOS开发常用的工具类.zip

    Objective-C的工具类往往包括字符串处理、数组和字典操作、日期和时间处理、网络请求、JSON解析、图片处理等多个方面。 1. **字符串处理**:工具类可能包含一些对NSString的扩展,比如格式化、验证、清理空格和特殊...

    个人使用常用工具类提交|simple-demo.zip

    "个人使用常用工具类提交"这个标题可能指的是某位开发者分享了自己常用的工具类集合,供他人参考或使用。 描述中的“个人使用常用工具类提交”表明这是一个个人整理的工具类库,可能包含了开发者在项目中频繁使用的...

    5年Java开发常用工具类

    这位拥有五年经验的开发者分享的工具类集合,覆盖了数据库连接、格式转换、文件操作和邮件发送等多个关键领域。下面,我们将详细探讨这些知识点。 1. **数据库连接**: - JDBC(Java Database Connectivity)是...

    自己用的工具类,自己写的

    标题中的“自己用的工具类,自己写的”表明这是一个个人创建的、用于个人或特定项目使用的工具类集合。工具类通常包含一系列静态方法,提供通用的功能,如数据处理、日期时间操作、字符串处理等,方便在不同的代码...

    Android快速开发系列 10个常用工具类实例代码详解

    日期工具类是 Android 开发中另一个常用的工具类,用于处理日期操作。日期工具类可以帮助我们快速地处理日期。 日期工具类通常包括各种日期操作方法,例如日期格式化、日期比较、日期计算等。我们可以根据需要选择...

    Java常用工具类

    分享常用的Java工具类,包括:日期,邮件,ZIP压缩解压缩,XML,HTTP,JSON,Freemarker,文件操作,图象,数组,验证码,日期,硬件信息读取,数学计算,随机数,路径,反射,正则,运行时RUNTIME,系统,汉字转...

    android开发常用工具类集锦.zip

    1. **CheckUtils.java**:这是一个用于数据验证的工具类,它可能包含如检查空值、检查字符串的有效性、验证网络连接等方法。例如,`isNullOrEmpty()`方法用于判断字符串是否为空,`isNetworkAvailable()`方法可能...

    详细的导出pdf工具类和jar包

    在Java编程中,工具类通常是一些静态方法的集合,这些方法执行特定的功能,如日期操作、字符串处理或文件操作。在本例中,"导出PDF工具类"可能包含一系列静态方法,用于生成和导出PDF文件。这些方法可能包括创建PDF...

    Java工具类分享

    分享常用的Java工具类,包括:日期,邮件,ZIP压缩解压缩,XML,HTTP,JSON,Freemarker,文件操作,图象,数组,验证码,日期,硬件信息读取,数学计算,随机数,路径,反射,正则,运行时RUNTIME,系统,汉字转...

    java 常用工具源码

    java 常用工具源码,多年工作积累,源码分享。...工作中多年积累常用工具,log封装,日期类,多线程操作,字符串处理,邮件发送,http工具类,页面处理,汉字拼音,ftp ,md5, secret,ValidatorStringEx,Xml类。

    android utils 工具类 大集合

    通常,一个工具类库会包含各种不同分类的工具类,如字符串处理、日期时间、网络请求、图片处理、文件操作等。在“MyUtils-master”中,我们可以期待找到这些功能的实现。 1. 字符串处理:在Android开发中,字符串...

    随便收集的工具类.rar

    例如,我们可以看到压缩包内有一个名为“工具类”的文件,这可能包含了以下几种常见的工具类: 1. **日期时间工具类**:这类工具类提供对日期和时间的操作,如格式化、解析、比较等,例如Java中的`java.time`包或者...

    安卓开发框架工具类相关-Android福利资源分享220个代码实例.rar

    【标题】"安卓开发框架工具类相关-Android福利资源分享220个代码实例.rar" 涵盖了丰富的Android应用程序开发中常用框架和工具类的代码实例,旨在帮助开发者提高编程效率,理解和掌握Android开发的关键技术。...

    微信小程序开发-工具类-XCX-scaffold案例源码.zip

    在微信小程序的开发过程中,"工具类"是指一组具有特定功能的代码模块,它们可以被复用,帮助开发者简化常见的编程任务,比如数据处理、网络请求、日期时间操作等。XCX-scaffold案例源码很可能是为了解析和展示如何...

    我自己日常使用的工具类

    在描述中提到了一个博客链接(https://lspgdut.iteye.com/blog/1485925),这可能是作者分享这些工具类的详细解释和使用场景。通过这个链接,我们可以深入理解每个工具类的设计理念和具体用途,学习作者在实际开发中...

Global site tag (gtag.js) - Google Analytics