- 浏览: 1989204 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
web开发中公用组件的开发之一---------DateUtils 在web应用中我们经常要到用到对日期的操作 已经有很多的开源代码供选择,例如apache 就有 不是太复杂就是不太适合中国国情的,反正项目中很少用到apache的公用组件包 下面是我在web开发中常用的些方法操作 现简单列举出来,已示记念。 Java代码 package com.chinadim.test.utils; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * xxxxx * xxxxxx */ public class DateUtils { /** * 静态常量 */ public static final String C_TIME_PATTON_DEFAULT = "yyyy-MM-dd HH:mm:ss"; public static final String C_DATE_PATTON_DEFAULT = "yyyy-MM-dd"; public static final int C_ONE_SECOND = 1000; public static final int C_ONE_MINUTE = 60 * C_ONE_SECOND; public static final long C_ONE_HOUR = 60 * C_ONE_MINUTE; public static final long C_ONE_DAY = 24 * C_ONE_HOUR; /** * 计算当前月份的最大天数 * @return */ public static int findMaxDayInMonth() { return findMaxDayInMonth(0, 0); } /** * 计算指定日期月份的最大天数 * @param date * @return */ public static int findMaxDayInMonth(Date date) { if (date == null) { return 0; } return findMaxDayInMonth(date2Calendar(date)); } /** * 计算指定日历月份的最大天数 * @param calendar * @return */ public static int findMaxDayInMonth(Calendar calendar) { if (calendar == null) { return 0; } return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); } /** * 计算当前年某月份的最大天数 * @param month * @return */ public static int findMaxDayInMonth(int month) { return findMaxDayInMonth(0, month); } /** * 计算某年某月份的最大天数 * @param year * @param month * @return */ public static int findMaxDayInMonth(int year, int month) { Calendar calendar = Calendar.getInstance(); if (year > 0) { calendar.set(Calendar.YEAR, year); } if (month > 0) { calendar.set(Calendar.MONTH, month - 1); } return findMaxDayInMonth(calendar); } /** * Calendar 转换为 Date * @param calendar * @return */ public static Date calendar2Date(Calendar calendar) { if (calendar == null) { return null; } return calendar.getTime(); } /** * Date 转换为 Calendar * @param date * @return */ public static Calendar date2Calendar(Date date) { if (date == null) { return null; } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } /** * 拿到默认格式的SimpleDateFormat * @return */ public static SimpleDateFormat getSimpleDateFormat() { return getSimpleDateFormat(null); } /** * 拿到指定输出格式的SimpleDateFormat * @param format * @return */ public static SimpleDateFormat getSimpleDateFormat(String format) { SimpleDateFormat sdf; if (format == null) { sdf = new SimpleDateFormat(C_TIME_PATTON_DEFAULT); } else { sdf = new SimpleDateFormat(format); } return sdf; } /** * 转换当前时间为默认格式 * @return */ public static String formatDate2Str() { return formatDate2Str(new Date()); } /** * 转换指定时间为默认格式 * @param date * @return */ public static String formatDate2Str(Date date) { return formatDate2Str(date, C_TIME_PATTON_DEFAULT); } /** * 转换指定时间为指定格式 * @param date * @param format * @return */ public static String formatDate2Str(Date date, String format) { if (date == null) { return null; } if (format == null || format.equals("")) { format = C_TIME_PATTON_DEFAULT; } SimpleDateFormat sdf = getSimpleDateFormat(format); return sdf.format(date); } /** * 转换默认格式的时间为Date * @param dateStr * @return */ public static Date formatStr2Date(String dateStr) { return formatStr2Date(dateStr, null); } /** * 转换指定格式的时间为Date * @param dateStr * @param format * @return */ public static Date formatStr2Date(String dateStr, String format) { if (dateStr == null) { return null; } if (format == null || format.equals("")) { format = C_TIME_PATTON_DEFAULT; } SimpleDateFormat sdf = getSimpleDateFormat(format); return sdf.parse(dateStr, new ParsePosition(0)); } /** * 转换默认格式的时间为指定格式时间 * @param dateStr * @param defineFormat * @return */ public static String formatDefault2Define(String dateStr, String defineFormat) { return formatSource2Target(dateStr, C_TIME_PATTON_DEFAULT, defineFormat); } /** * 转换源格式的时间为目标格式时间 * @param dateStr * @param sourceFormat * @param targetFormat * @return */ public static String formatSource2Target(String dateStr, String sourceFormat, String targetFormat) { Date date = formatStr2Date(dateStr, sourceFormat); return formatDate2Str(date, targetFormat); } /** * 计算当天是该年中的第几周 * @return */ public static int findWeeksNoInYear() { return findWeeksNoInYear(new Date()); } /** * 计算指定日期是该年中的第几周 * @param date * @return */ public static int findWeeksNoInYear(Date date) { if (date == null) { return 0; } return findWeeksNoInYear(date2Calendar(date)); } /** * 计算指定日历是该年中的第几周 * @param calendar * @return */ public static int findWeeksNoInYear(Calendar calendar) { if (calendar == null) { return 0; } return calendar.get(Calendar.WEEK_OF_YEAR); } /** * 计算一年中的第几星期是几号 * @param year * @param weekInYear * @param dayInWeek * @return */ public static Date findDateInWeekOnYear(int year, int weekInYear, int dayInWeek) { Calendar calendar = Calendar.getInstance(); if (year > 0) { calendar.set(Calendar.YEAR, year); } calendar.set(Calendar.WEEK_OF_YEAR, weekInYear); calendar.set(Calendar.DAY_OF_WEEK, dayInWeek); return calendar.getTime(); } /** * 相对于当前日期的前几天(days < 000000)或者后几天(days > 0) * @param days * @return */ public static Date dayBefore2Date(int days) { Date date = new Date(); return dayBefore2Object(days, null, date); } /** * 相对于当前日期的前几天(days < 000000)或者后几天(days > 0) * @param days * @return */ public static String dayBefore2Str(int days) { String string = formatDate2Str(); return dayBefore2Object(days, null, string); } /** * 相对于当前日期的前几天(days < 000000)或者后几天(days > 0) * @param days * @param format * @param instance */ @SuppressWarnings("unchecked") public static <T extends Object> T dayBefore2Object(int days, String format, T instance) { Calendar calendar = Calendar.getInstance(); if (days == 0) { return null; } if (format == null || format.equals("")) { format = C_TIME_PATTON_DEFAULT; } calendar.add(Calendar.DATE, days); if (instance instanceof Date) { return (T)calendar.getTime(); } else if (instance instanceof String) { return (T)formatDate2Str(calendar2Date(calendar), format); } return null; } /** * 相对于指定日期的前几天(days < 000000)或者后几天(days > 0) * @param date * @param days * @return */ public static Date defineDayBefore2Date(Date date, int days) { Date dateInstance = new Date(); return defineDayBefore2Object(date, days, null, dateInstance); } /** * 相对于指定日期的前几天(days < 000000)或者后几天(days > 0) * @param date * @param days * @return */ public static String defineDayBefore2Str(Date date, int days) { String stringInstance = formatDate2Str(); return defineDayBefore2Object(date, days, null, stringInstance); } /** * 相对于指定日期的前几天(days < 000000)或者后几天(days > 0) * @param <T> * @param date * @param days * @param format * @param instance * @return */ @SuppressWarnings("unchecked") public static <T extends Object> T defineDayBefore2Object(Date date, int days, String format, T instance) { if (date == null || days == 0) { return null; } if (format == null || format.equals("")) { format = C_TIME_PATTON_DEFAULT; } Calendar calendar = date2Calendar(date); calendar.add(Calendar.DATE, days); if (instance instanceof Date) { return (T)calendar.getTime(); } else if (instance instanceof String) { return (T)formatDate2Str(calendar2Date(calendar), format); } return null; } /** * 相对于当前日期的前几月(months < 000000)或者后几月(months > 0)时间 * @param months * @return */ public static Date monthBefore2Date(int months) { Date date = new Date(); return monthBefore2Object(months, null, date); } /** * 相对于当前日期的前几月(months < 000000)或者后几月(months > 0)时间 * @param months * @return */ public static String monthBefore2Str(int months) { String string = formatDate2Str(); return monthBefore2Object(months, null, string); } /** * 相对于当前日期的前几月(months < 000000)或者后几月(months > 0)时间 * @param <T> * @param months * @param format * @param instance */ @SuppressWarnings("unchecked") public static <T extends Object> T monthBefore2Object(int months, String format, T instance) { if (months == 0) { return null; } if (format == null || format.equals("")) { format = C_TIME_PATTON_DEFAULT; } Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, months); if (instance instanceof Date) { return (T)calendar.getTime(); } else if (instance instanceof String) { return (T)formatDate2Str(calendar2Date(calendar), format); } return null; } /** * 相对于指定日期的前几月(months < 000000)或者后几月(months > 0)时间 * @param date * @param months * @return */ public static Date defineMonthBefore2Date(Date date, int months) { Date dateInstance = new Date(); return defineMonthBefore2Object(date, months, null, dateInstance); } /** * 相对于指定日期的前几月(months < 000000)或者后几月(months > 0)时间 * @param date * @param months * @return */ public static String defineMonthBefore2Str(Date date, int months) { String stringInstance = formatDate2Str(); return defineMonthBefore2Object(date, months, null, stringInstance); } /** * 相对于指定日期的前几月(months < 000000)或者后几月(months > 0)时间 * @param <T> * @param date * @param months * @param format * @param instance * @return */ @SuppressWarnings("unchecked") public static <T extends Object> T defineMonthBefore2Object(Date date, int months, String format, T instance) { if (months == 0) { return null; } if (format == null || format.equals("")) { format = C_TIME_PATTON_DEFAULT; } Calendar calendar = date2Calendar(date); calendar.add(Calendar.MONTH, months); if (instance instanceof Date) { return (T)calendar.getTime(); } else if (instance instanceof String) { return (T)formatDate2Str(calendar2Date(calendar), format); } return null; } /** * 计算两个日期直接差的天数 * @param firstDate * @param secondDate * @return */ public static int caculate2Days(Date firstDate, Date secondDate) { Calendar calendar = Calendar.getInstance(); calendar.setTime(firstDate); int dayNum1 = calendar.get(Calendar.DAY_OF_YEAR); calendar.setTime(secondDate); int dayNum2 = calendar.get(Calendar.DAY_OF_YEAR); return Math.abs(dayNum1 - dayNum2); } /** * 计算两个日期直接差的天数 * @param firstCalendar * @param secondCalendar * @return */ public static int caculate2Days(Calendar firstCalendar, Calendar secondCalendar) { if (firstCalendar.after(secondCalendar)) { Calendar calendar = firstCalendar; firstCalendar = secondCalendar; secondCalendar = calendar; } long calendarNum1 = firstCalendar.getTimeInMillis(); long calendarNum2 = secondCalendar.getTimeInMillis(); return Math.abs((int)((calendarNum1 - calendarNum2)/C_ONE_DAY)); } public static void main(String[] args) { // System.out.println("当前月份的最大天数:" + findMaxDayInMonth(new Date())); // System.out.println("6月份的最大天数:" + findMaxDayInMonth(6)); // System.out.println("1999-02月份的最大天数:" + findMaxDayInMonth(1999, 2)); // System.out.println("2000-02月份的最大天数:" + findMaxDayInMonth(2000, 2)); // System.out.println(formatSource2Target("2009-07-24 11:02:35", null, "yyyy/MM/dd")); // System.out.println(findWeeksNoInYear()); // System.out.println("2003年的第30个星期一是那天:" + findDateInWeekOnYear(2003, 30, Calendar.MONDAY)); // System.out.println("2009年的第30个星期一是那天:" + findDateInWeekOnYear(2009, 30, Calendar.FRIDAY)); // System.out.println("【日期格式】当前日期的前7天是:" + dayBefore2Date(-7)); // System.out.println("【字符格式】当前日期的前7天是:" + dayBefore2Str(-7)); // System.out.println("【日期格式】当前日期的后7天是:" + dayBefore2Date(7)); // System.out.println("【字符格式】当前日期的后7天是:" + dayBefore2Str(7)); // System.out.println(formatStr2Date("2009-07-22", "yyyy-MM-dd")); // System.out.println("【日期格式】2009-07-22的前7天是:" + // defineDayBefore2Date(formatStr2Date("2009-07-22", "yyyy-MM-dd"), -7)); // System.out.println("【字符格式】2009-07-22的前7天是:" + // defineDayBefore2Str(formatStr2Date("2009-07-22", "yyyy-MM-dd"), -7)); // System.out.println("【日期格式】2009-07-22的后7天是:" + // defineDayBefore2Date(formatStr2Date("2009-07-22", "yyyy-MM-dd"), 7)); // System.out.println("【字符格式】2009-07-22的后7天是:" + // defineDayBefore2Str(formatStr2Date("2009-07-22", "yyyy-MM-dd"), 7)); // System.out.println("【日期格式】相对于当前时间的前2月日期是:" + monthBefore2Date(-2)); // System.out.println("【字符格式】相对于当前时间的前2月日期是:" + monthBefore2Date(-2)); // System.out.println("【日期格式】相对于当前时间的后2月日期是:" + monthBefore2Date(2)); // System.out.println("【字符格式】相对于当前时间的后2月日期是:" + monthBefore2Date(2)); // System.out.println("【日期格式】2009-07-22的前2月日期是:" + // defineMonthBefore2Date(formatStr2Date("2009-07-22", "yyyy-MM-dd"), -2)); // System.out.println("【字符格式】2009-07-22的前2月日期是:" + // defineMonthBefore2Date(formatStr2Date("2009-07-22", "yyyy-MM-dd"), -2)); // System.out.println("【日期格式】2009-07-22的后2月日期是:" + // defineMonthBefore2Date(formatStr2Date("2009-07-22", "yyyy-MM-dd"), 2)); // System.out.println("【字符格式】2009-07-22的后2月日期是:" + // defineMonthBefore2Date(formatStr2Date("2009-07-22", "yyyy-MM-dd"), 2)); // Date firstDate = formatStr2Date("2009-07-22", "yyyy-MM-dd"); // Date secondDate = formatStr2Date("2009-07-18", "yyyy-MM-dd"); // System.out.println(caculate2Days(firstDate, secondDate)); Calendar firstC = date2Calendar(formatStr2Date("2009-07-22", "yyyy-MM-dd")); Calendar secondC = date2Calendar(formatStr2Date("2009-07-18", "yyyy-MM-dd")); System.out.println(caculate2Days(firstC, secondC)); } }
发表评论
-
解决Java服务器端插入数据到Mysql中乱码问题--简单几步轻松解决乱码问题
2015-11-13 17:52 2414当写入数据到mysql数据库中发生乱码时.请检查以下几个地 ... -
设计模式之-代理模式-Proxy
2015-04-28 21:24 868使用代理模式之前需要知道代理模式能做什么? 能有哪些好处以及 ... -
构建高并发、服务化、低耦合企业级脚骨:springmvc+mybatis+restfull+webservice+bootstrap html5
2015-04-14 01:17 85SpringMVC + Mybatis + SpringS ... -
教您搭建大型互联网企业架构:springmvc+mybatis+restful+webservice+quartz+bootstrap
2015-04-13 21:54 99SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restful+webservice+quartz+bootstrap html5
2015-04-13 21:49 81SpringMVC + Mybatis + SpringSe ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:36 22SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:33 83SpringMVC + Mybatis + SpringS ... -
Maven构建大型互联网架构springmvc+mybatis+Restfull+Webservice+Bootstrap
2015-04-12 23:28 71SpringMVC + Mybatis + SpringS ... -
maven构建高大上开源架构:springmvc+mybatis+rest+bootstrap html5
2015-04-12 23:25 23SpringMVC + Mybatis + SpringS ... -
手机App后台架构:Springmvc+SpringSecurity+mybatis+Rest+Quartz+Bootstrap Html5( Maven构建)
2015-04-09 01:39 76APP后台架构Maven构建,模拟大型互联网架构,支持高并发 ... -
maven构建springmvc+mybatis+rest+webservice+bootstrap html5(cms开源项目)
2015-04-09 01:21 85SpringMVC + Mybatis + SpringS ... -
Java正则表达式
2014-11-26 21:03 1220Java正则表达式: package pack.ja ... -
Cannot convert value of type [org.springframework.cache.ehcache.EhCacheCache
2014-11-10 20:03 6247错误信息: [org.springframework.be ... -
Collections工具类中的frequency方法统计单词出现的次数
2013-11-05 21:30 2812最近发现了一个Collections中有一个很好用的方法: ... -
Java 压缩Excel文件生成.zip文件
2013-05-08 22:22 7950首先创建文件目录,然后生成Excel文件到创建的目录下, ... -
Java 解压缩zip文件
2013-05-08 13:14 8351不借助于其他的第三方 ... -
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度
2013-04-06 22:26 57704最近项目中需要用到导出Excel文件,以下是我写了一个通过j ... -
java获取字节的长度.
2012-05-17 22:00 6744我们经常要获取中文,数字,或者英文字符所占字节的长度,下面就列 ... -
StringBuffer-reverse()字符反转功能
2012-05-17 21:42 7093在书上看到一个这样的例子, 采用最简便的方式把一串字符串反转过 ... -
java 打开IE
2012-05-23 22:14 1298Runtime.getRuntime().exec(" ...
相关推荐
常用日期操作:年初,年末,月初,月末,本季度初,本季度末,周初日,周末等封装,扩展。
`DateUtils.java` 是一个Java编程中的自定义工具类,专门用于处理日期和时间相关的操作。在Java开发中,处理日期和时间是非常常见的需求,例如计算两个日期之间的差距、格式化日期显示、获取当前时间等。`DateUtils`...
* 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ ...
DateUtils.java工具类很实用
这个`DateUtils.zip`压缩包包含了一个名为`Time的帮助类DateUtils.txt`的文件,我们可以从中学习到如何在Java中高效地管理日期和时间。 `DateUtils`类一般会提供一些静态方法,用于格式化、解析日期,计算日期间隔...
总的来说,`DateUtils` 类是Java开发中的一个实用工具,它提供了丰富的日期时间处理功能,而`Lunar` 类则扩展了对农历日期的支持。合理使用这两个类,可以有效地管理和操作日期和时间,提高代码的可读性和可维护性。...
日期时间处理在编程中是一项基础且重要的任务,Python 作为一门功能丰富的编程语言,提供了多种方式来处理日期和时间。`dateutils` 是一个 Python 库,专门用于增强 Python 的日期和时间处理能力,它提供了许多实用...
Dateutils 包含几个命令行下处理日期时间的工具,特别用于处理大量金融数据。 标签:Dateutils
dateUtils.js
属于时间转换工具类文件,其中包含格式转换,时区转换,时间计算等。
`DateUtils.rar`这个压缩包包含了一个名为`DateUtils.java`的源代码文件,我们可以推测这是一个提供了一系列静态方法的工具类,专门用来处理日期和时间。下面我们将深入探讨Java中的日期处理以及`DateUtils`可能包含...
org.apache.commons.lang.time.DateUtils.class org.apache.commons.lang.time.DurationFormatUtils$Token.class org.apache.commons.lang.time.DurationFormatUtils.class org.apache.commons.lang.time....
Apache Commons 是一个非常著名的开源项目,它为Java开发者提供了大量实用的工具类库,极大地简化了常见的编程任务。在描述中提到的 `StringUtil` 和 `CollectionUtils` 是Apache Commons中的两个核心工具类,它们...