`
yeminping
  • 浏览: 181079 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

JAVA中不错的处理日期工具单元

    博客分类:
  • JAVA
阅读更多

 /**Revision Information:
*@version 1.0 2006-7-31 release(fanrui)
*/
import java.util.Calendar;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class DateUtilTools {

     /**
          * 方法名: 功能描述: 两个参数格式必须为20050827,而且不能为空。 参数说明: 第一个参数小于第二个参数返回true 返回值: //
          * 函数返回值的说明 其他: // 其它说明
          */
     public static boolean lessThan(String preDate, String date) {
if (preDate == null && date == null) {
      return false;
} else if (preDate == null) {
      return true;
} else if (date == null) {
      return false;
}
preDate = preDate.trim();
date = date.trim();
if (preDate.length() == 8 && date.length() == 8) {
      Integer date1 = new Integer(preDate);
      Integer date2 = new Integer(date);
      if (date1.compareTo(date2) < 0) {
   return true;
      }
}
return false;
     }

     /**
          * 方法名: 功能描述: 两个参数格式必须为20050827,而且不能为空。 参数说明: 第一个参数大于第二个参数返回true 返回值: //
          * 函数返回值的说明 其他: // 其它说明
          */
     public static boolean greaterThan(String preDate, String date) {
if (preDate == null && date == null) {
      return false;
} else if (preDate == null) {
      return false;
} else if (date == null) {
      return true;
}
preDate = preDate.trim();
date = date.trim();
if (preDate.length() == 8 && date.length() == 8) {
      Integer date1 = new Integer(preDate);
      Integer date2 = new Integer(date);
      if (date1.compareTo(date2) > 0) {
   return true;
      }
}
return false;
     }

     /**
          * 方法名: 功能描述: 两个参数格式必须为20050827,而且不能为空。 参数说明: 返回值: // 函数返回值的说明 其他: //
          * 其它说明
          */
     public static boolean equal(String preDate, String date) {
if (preDate == null && date == null) {
      return false;
} else if (preDate == null) {
      return false;
} else if (date == null) {
      return true;
}
preDate = preDate.trim();
date = date.trim();
if (preDate.length() == 8 && date.length() == 8) {
      Integer date1 = new Integer(preDate);
      Integer date2 = new Integer(date);
      if (date1.compareTo(date2) == 0) {
   return true;
      }
}
return false;
     }

     /**
          * @param 19位的时间
          *                 yyyy-MM-dd HH:mm:ss
          * @return 15位的时间 yyyyMMdd HHmmss
          */
     public static String _time19To15(String time_19) {
String time_15 = "";
if (time_19 == null || "".equals(time_19) || time_19.length() != 19) {
      time_15 = "";
} else {
      String[] r = time_19.replace('-', '#').replace(':', '#').split("#");
      for (int i = 0; i < r.length; i++) {
   time_15 += r[i];
      }
}
return time_15;
     }

     /**
          * @param 15位的时间
          *                 yyyyMMdd HHmmss
          * @return 19位的时间 yyyy-MM-dd HH:mm:ss
          */
     public static String _time15To19(String time_15) {
String time_19 = "";
if (time_15 == null || "".equals(time_15) || time_15.length() != 15) {
      time_19 = "";
} else {
      String y = time_15.substring(0, 4);
      String m = time_15.substring(4, 6);
      String d = time_15.substring(6, 8);
      String h = time_15.substring(9, 11);
      String mi = time_15.substring(11, 13);
      String s = time_15.substring(13, 15);
      time_19 = y + "-" + m + "-" + d + " " + h + ":" + mi + ":" + s;
}
return time_19;
     }

     /**
          * @param 16位的时间
          *                 yyyy-MM-dd HH:mm
          * @return 13位的时间 yyyyMMdd HHmm
          */
     public static String _time16To13(String time_16) {
String time_13 = "";
if (time_16 == null || "".equals(time_16) || time_16.length() != 16) {
      time_13 = "";
} else {
      String[] r = time_16.replace('-', '#').replace(':', '#').split("#");
      for (int i = 0; i < r.length; i++) {
   time_13 += r[i];
      }
}
return time_13;
     }

     /**
          * @param 13位的时间
          *                 yyyyMMdd HHmm
          * @return 16位的时间 yyyy-MM-dd HH:mm
          */
     public static String _time13To16(String time_13) {
String time_16 = "";
if (time_13 == null || "".equals(time_13) || time_13.length() != 13) {
      time_16 = "";
} else {
      String y = time_13.substring(0, 4);
      String m = time_13.substring(4, 6);
      String d = time_13.substring(6, 8);
      String h = time_13.substring(9, 11);
      String mi = time_13.substring(11, 13);
      time_16 = y + "-" + m + "-" + d + " " + h + ":" + mi;
}
return time_16;
     }

     /**
          * @param 10位的日期
          *                 yyyy-MM-dd
          * @return 8位的日期 yyyyMMdd
          */
     public static String _date10To8(String date_10) {
String date_8 = "";
if (date_10 == null || "".equals(date_10) || date_10.length() != 10) {
      date_8 = "";
} else {
      String[] r = date_10.split("-");
      for (int i = 0; i < r.length; i++) {
   date_8 += r[i];
      }
}
return date_8;
     }

     /**
          * @param 8位的日期
          *                 yyyyMMdd
          * @return 10位的日期 yyyy-MM-dd
          */
     public static String _date8To10(String date_8) {
String date_10 = "";
if (date_8 == null || "".equals(date_8) || date_8.length() != 8) {
      date_10 = "";
} else {
      String y = date_8.substring(0, 4);
      String m = date_8.substring(4, 6);
      String d = date_8.substring(6, 8);
      date_10 = y + "-" + m + "-" + d;
}
return date_10;
     }

     /**
          * @param 7位的日期
          *                 yyyy-MM
          * @return 6位的日期 yyyyMM
          */
     public static String _date7To6(String date_7) {
String date_6 = "";
if (date_7 == null || "".equals(date_7) || date_7.length() != 7) {
      date_6 = "";
} else {
      String[] r = date_7.split("-");
      for (int i = 0; i < r.length; i++) {
   date_6 += r[i];
      }
}
return date_6;
     }

     /**
          * @param 6位的日期
          *                 yyyyMM
          * @return 7位的日期 yyyy-MM
          */
     public static String _date6To7(String date_6) {
String date_7 = "";
if (date_6 == null || "".equals(date_6) || date_6.length() != 6) {
      date_7 = "";
} else {
      String y = date_6.substring(0, 4);
      String m = date_6.substring(4, 6);
      date_7 = y + "-" + m;
}
return date_7;
     }

     /**
          * Calendar 转 String
          * @param Calendar
          * @return String YYYY-MM-DD HH:mm:ss
          */
     public static String getString(Calendar cal) {
String month = "";
String day = "";
String hour = "";
String minute = "";
String second = "";
if ((cal.get(Calendar.MONTH) + 1) < 10)
      month = "0" + (cal.get(Calendar.MONTH) + 1);
else
      month = "" + (cal.get(Calendar.MONTH) + 1);

if (cal.get(Calendar.DAY_OF_MONTH) < 10)
      day = "0" + cal.get(Calendar.DAY_OF_MONTH);
else
      day = "" + cal.get(Calendar.DAY_OF_MONTH);

if (cal.get(Calendar.HOUR_OF_DAY) < 10)
      hour = "0" + cal.get(Calendar.HOUR_OF_DAY);
else
      hour = "" + cal.get(Calendar.HOUR_OF_DAY);

if (cal.get(Calendar.MINUTE) < 10)
      minute = "0" + cal.get(Calendar.MINUTE);
else
      minute = "" + cal.get(Calendar.MINUTE);

if (cal.get(Calendar.MINUTE) < 10)
      minute = "0" + cal.get(Calendar.MINUTE);
else
      minute = "" + cal.get(Calendar.MINUTE);

if (cal.get(Calendar.SECOND) < 10)
      second = "0" + cal.get(Calendar.SECOND);
else
      second = "" + cal.get(Calendar.SECOND);

return cal.get(Calendar.YEAR) + "-" + month + "-" + day + " " + hour
   + ":" + minute + ":" + second;
     }

     /**
          * @param Calendar
          * @return String YYYY-MM-DD
          */
     public static String getShortString(Calendar cal) {
String month = "";
String day = "";
if ((cal.get(Calendar.MONTH) + 1) < 10)
      month = "0" + (cal.get(Calendar.MONTH) + 1);
else
      month = "" + (cal.get(Calendar.MONTH) + 1);

if (cal.get(Calendar.DAY_OF_MONTH) < 10)
      day = "0" + cal.get(Calendar.DAY_OF_MONTH);
else
      day = "" + cal.get(Calendar.DAY_OF_MONTH);
return cal.get(Calendar.YEAR) + "-" + month + "-" + day;// +"
// "+hour+":"+minute+":"+second;
     }

     /**
          * @param String
          *                 YYYY-MM-DD HH:mm:ss
          * @return Calendar YYYY-MM-DD HH:mm:ss
          */
     public static Calendar toCalender(String time) {

Calendar calendar = Calendar.getInstance();
int year = Integer.parseInt(time.substring(0, 4));
int month = Integer.parseInt(time.substring(5, 7));
int day = Integer.parseInt(time.substring(8, 10));
int hour = Integer.parseInt(time.substring(11, 13));
int munite = Integer.parseInt(time.substring(14, 16));
int second = Integer.parseInt(time.substring(17, 19));
calendar.set(year, month - 1, day, hour, munite, second);
return calendar;
     }

     /**
          * @param String
          *                 YYYY-MM-DD
          * @return Calendar YYYY-MM-DD
          */
     public static Calendar toDateCalender(String time) {
Calendar calendar = Calendar.getInstance();
int year = Integer.parseInt(time.substring(0, 4));
int month = Integer.parseInt(time.substring(5, 7));
int day = Integer.parseInt(time.substring(8, 10));
int hour = Integer.parseInt("00");
int munite = Integer.parseInt("00");
int second = Integer.parseInt("00");
calendar.set(year, month - 1, day, hour, munite, second);
return calendar;
     }

     /**
          * @param String
          * @return Date
          */
     public static java.util.Date stringToDate(String dateStr) {
return java.sql.Date.valueOf(dateStr);
     }

     /**
          * @return 系统时间String
          */
     public static String getSystemTime_String() {
return DateUtilTools.getString(Calendar.getInstance());
     }

     /**
          * @return 系统时间 Date
          */
     public static Date getSystemTimeDate() {
String nowdate = DateUtilTools.getShortString(Calendar.getInstance());
return DateUtilTools.stringToDate(nowdate);
     }

     /**
          * @return 系统时间 String
          */
     public static String getNowTime_String() {
java.util.Date now = new java.util.Date();
return DateUtilTools.getLongTimeStr(now);
     }

     /**
          * 将字符串日期转换为Date对象
          * @param str
          * @return
          * @throws ParseException
          */
     public static Date getDateFromstr(String str) {
Date theDate = null;
if(str.length()<=10){
      str+=" 00:00:00";
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
      theDate = sdf.parse(str);
}catch(Exception ex){ex.printStackTrace();}
return theDate;
     }

     /**
          * 将Date时间转换为长日期字符串('yyyy-MM-dd HH:mm:ss'格式)
          * @param t
          * @return
          */
     public static String getLongTimeStr(Date t) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(t);
     }

     /**
          * 将Date时间转换为短日期字符串('yyyy-MM-dd'格式)
          * @param t
          * @return
          */
     public static String getShortTimeStr(Date t) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(t);
     }

/**
   * 将长日期字符串('yyyy-MM-dd HH:mm:ss'格式)转换为短日期字符串('yyyy-MM-dd'格式)
   * @param calendar
   * @return
   */
public static String getShortDateStr(String str) {
int pos = str.indexOf(' ');
if (pos > 0) {
      return str.substring(0, pos);
}
return str;
     }

/**
   * 将长日期字符串('yyyy-MM-dd HH:mm:ss'格式)转换为短时间字符串('HH:mm'格式)
   * @param calendar
   * @return
   */
public static String getShortTimeStr(String str) {
int pos = str.indexOf(' ');
if (pos > 0) {
      str = str.substring(pos + 1);
}
pos = str.lastIndexOf(':');
if (pos > 0) {
      return str.substring(0, pos);
}
return str;
     }

     /**
          * 返回当前的年月 yyyy-mm
          * @return String
          */
     public static String getSysMonth7() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String str = formatter.format(new Date());
if (str == null || "".equals(str)) {
      str = "";
} else {
      str = str.substring(0, 7);
}
return str;
     }
   
     /**
      * 返回当前的年月 yyyymm
      * @return String
      */
public static String getSysMonth6() {
   return getSysMonth7().replaceFirst("-","");
}

     /**
          * 返回当前的整点时间 如:2006-08-07 17:00:00
          * @return
          */
public static String getCurrentDateAndHour() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE), cal.get(Calendar.HOUR_OF_DAY), 0, 0);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(new Date(cal.getTimeInMillis()));
     }

     /**
          * 返回当前的时间的小时数
          * @return
          */
     public static String getCurrentHour() {
Calendar cal=Calendar.getInstance();
return String.valueOf(cal.get(Calendar.HOUR_OF_DAY));
     }

     /**
          * 返回输入的整点时间 如:2006-08-07 17:00:00
          * @param cal
          * @return
          */
     public static String getCurrentDateAndHour(Calendar cal) {

cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE), cal.get(Calendar.HOUR_OF_DAY), 0, 0);

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

return formatter.format(new Date(cal.getTimeInMillis()));
     }

     /**
          * 返回输入时间的小时数
          * @param cal
          * @return
          */
     public static String getCurrentHour(Calendar cal) {
return String.valueOf(cal.get(Calendar.HOUR_OF_DAY));
     }

     /**
          * 返回年

          * @return int
          */
     public static int getYear() {
return Calendar.getInstance().get(1);
     }

     /**
          * 返回月
          * @return int
          */
     public static int getMonth() {
return Calendar.getInstance().get(Calendar.MONTH) + 1;
     }

     /**
          * 返回日
          * @return int
          */
     public static int getDay() {
return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
     }

     /**
          * 判断是否是润年

          * @return boolean
          */
     public static boolean isLunYear(int year) {
return (year % 4 == 0 && year % 100 == 0) || year % 400 == 0;
     }

     /**
          * 当前时间,日加两天
          * @return String
          */
     public static String getSdate() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal
   .get(Calendar.DATE) + 2);
return DateUtilTools.getShortString(cal);
     }

     /**
          *当前时间,月加一个月
          * @return String
          */
     public static String getEdate() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal
   .get(Calendar.DATE) + 2);
return DateUtilTools.getShortString(cal);
     }

     /**
          * 计算指定年和月的总天数, 要输入年份的原因是要判断二月29天还是28天
          * @param int
          *                 Month ,int Year
          * @return int
          */
     public static int getCountMonth(int Month, int Year) {
int Dates = 0;
if (Month < 0 || Month > 12) {
      System.out.println("Month Error");
}
if (Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8
   || Month == 10 || Month == 12) {
      Dates = 31;
}
if (Month == 2 && DateUtilTools.isLunYear(Year)) {
      Dates = 29;
}
if (Month == 2 && !DateUtilTools.isLunYear(Year)) {
      Dates = 28;
}
if (Month == 4 || Month == 6 || Month == 9 || Month == 11) {
      Dates = 30;
}
return Dates;
     }

     /**
          * 计算当月总天数
          * @return int
          */
     public static int getCountMonth() {
   Calendar thisMonth = Calendar.getInstance();     //声明一个当前日期
   return thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);     //取得当月共有多少天
     }

    /**
          * 将Date时间转换为短日期字符串('yyyyMMdd'格式)
          * @param t
          * @return
          */
     public static String getShortDateStr(Date t) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
return formatter.format(t);
     }

     /**
      * 比较两个Calendar 的大小,第一个比第二个小 返回 true ,反之 false
      * Calendar cal,Calendar cal2
      * @param cal
      * @param cal2
      * @return boolean
      */
public static boolean compareCalendar(Calendar cal,Calendar cal2)//日期的比较,前者比后者早
{
   return cal.before(cal2);
}

/**
   * 返回两个Calendar 之间的天数
   * @param Calendar cal
   * @param Calendar cal2
   * @return long
   */
     public static long betweenCalendarDays(Calendar cal,Calendar cal2){
      long days=0;
      Date d1=cal.getTime();
      Date d2=cal2.getTime();
      days=d1.getTime()-d2.getTime();
      days=days/3600/24/1000;
      return days;
     }
}

分享到:
评论

相关推荐

    Ut.rar_java 开发ut包_javaut demo_java工具_java工具类_基础工具

    在Java开发过程中,工具类是不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理常见的编程任务。"Ut.rar" 是一个包含Java基础工具类的压缩包,特别针对单元测试(UT,Unit Test)和一些常见的开发...

    一些java常用的工具类

    在Java的集合框架中,ArrayList和LinkedList等集合类虽然强大,但在处理特定任务时,可能需要额外的辅助工具。Java.util.Collections类提供了对集合的一系列操作,如排序、查找、填充等。此外,Guava库(Google ...

    牛逼的java常用工具类

    4. **日期和时间API**:Java 8引入了新的日期和时间API,位于`java.time`包下,包括LocalDate、LocalTime、LocalDateTime和ZonedDateTime等类,它们提供了更强大、更直观的时间处理能力,取代了旧的`java.util.Date`...

    java常用开发工具类大全

    在Java编程语言中,工具类(Utility Classes)是程序员日常工作中不可或缺的一部分,它们提供了一系列静态方法,用于执行特定任务或处理特定数据类型。"java常用开发工具类大全"可能包含了一系列这样的工具类,旨在...

    java utils 工具类

    JavaUtils工具类是Java开发中常见的一类辅助代码集合,它们通常包含各种静态方法,用于简化常见的编程任务,提高开发效率。这篇博文链接(已提供但无法直接访问)可能详细探讨了JavaUtils工具类的设计原则、常用方法...

    java通用的导入导出excel工具

    在Java编程中,处理Excel数据是一项常见的任务,无论是数据分析、报表生成还是数据交换。本工具是基于Java反射机制实现的通用Excel导入导出类,它提供了便捷的方式来读取和写入Excel文件,适用于多种场景。下面我们...

    java源码:Java日期选择控件完整源代码.rar

    首先,我们要知道在Java中处理日期和时间的基本类是`java.util.Date`和`java.text.SimpleDateFormat`。然而,这两个类在设计上存在一些问题,因此在Java 8及以后的版本中,推荐使用`java.time`包下的类,如`...

    java常用的工具类

    位于`java.time`包下,如`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等类,以及`TemporalAdjusters`和`TemporalQueries`等工具类,提供了更强大、易用的时间日期处理功能。 6. **Reflection API**...

    java计算24节气

    Java编程语言在处理日期和时间方面提供了强大的支持,这使得我们能够轻松地计算中国的24节气。24节气是中国传统历法的重要组成部分,它根据太阳在黄道上的位置来划分一年的时间,反映了四季的变化和农事活动的周期。...

    java常用代码工具包

    5. **异常处理**:异常处理是Java编程中不可或缺的部分,工具包可能包含了一些自定义的异常类,或者提供了统一的异常处理策略。 6. **日志记录**:日志工具可以帮助开发者调试和追踪程序运行状态,工具包可能会集成...

    28个java常用的工具类源码

    5. **Date和Calendar**: 处理日期和时间的工具类,Calendar提供了更灵活的日期/时间操作,而Date则主要表示特定瞬间。 6. **StringBuilder和StringBuffer**: 在字符串拼接和修改时,这两个类比直接使用"+"操作符更...

    Java.构建工具.ANT

    【Java 构建工具 ANT】是Java开发中的一个重要组成部分,它是Apache软件基金会开发的一个开源构建工具,主要用于自动化Java项目的构建、编译、测试和部署等任务。Ant以其灵活性和可扩展性著称,通过XML配置文件...

    JAVA计算日期的农历节日、公历节日代码

    在Java编程中,处理日期和时间是常见的任务之一,尤其是涉及到农历和公历节日的计算。这个主题主要涵盖如何在Java中实现农历和公历节日的计算,这对于开发具有中国特色的日历应用或者需要处理农历数据的系统至关重要...

    常用的工具单元

    在“常用的工具单元”这一主题中,我们还会接触到其他实用的库和函数,比如用于处理日期和时间的API,如Java的java.time包或Python的datetime模块。这些工具帮助我们在编程中准确地记录和计算时间。此外,还有处理...

    java编程实现小小工具

    在本项目中,"java编程实现小小工具"是一个基于Java编程语言的期末课程设计,主要目标是开发一个集成了计时器、日历和闹钟功能的实用程序。这个项目可以帮助用户有效地管理时间,提供方便的日期和时间操作。下面我们...

    java开发工具

    `DateUtils.java`是一个常见的日期处理工具类,很可能来自于某个开源项目,如Apache Commons Lang或Java 8的日期时间API。这个类通常包含各种静态方法,用于日期和时间的计算、格式化和解析,是Java开发中经常遇到的...

    十二生肖和星座Java工具类.rar

    3. **日期处理**:在Java中,可以使用`java.time`包(Java 8及以上版本)或者`java.util.Calendar`类来处理日期。例如,`LocalDate`对象可以用来判断一个人的出生日期是否落在某个星座的范围内。 4. **条件判断**:...

    java自动生成节假日对照表

    这些库提供了处理日期和时间的强大功能,可以方便地进行日期的比较、加减和格式化。 2. **节假日规则定义**:根据中国节假日的规则,你需要定义一套规则,包括固定日期的节日(如5月1日的劳动节)、农历节日(如...

    java常用工具类

    6. **Date** 和 **Calendar** 类:处理日期和时间的工具,但现代Java推荐使用**java.time**包中的类,如LocalDate, LocalDateTime和Duration等,它们更强大且易于使用。 7. **Random** 类:生成随机数,支持整数和...

    java中excel导出工具poi接口封装

    综上所述,"java中excel导出工具poi接口封装"是为了简化Excel文件处理的复杂性,提供一套易于使用的API,让开发人员能专注于业务逻辑,而非底层的文件操作。通过合理封装,可以提高开发效率,降低维护成本,同时提升...

Global site tag (gtag.js) - Google Analytics