首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于日期惯用操作工具类

2012-12-22 
关于日期常用操作工具类public class DateUtils {/*** 获取当前时间日期的字符串*/public static String g

关于日期常用操作工具类

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

?

热点排行