热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

日期处理类DateUtils【org.apache.commons.lang3.time.DateUtils】

lang3官方版本Maven依赖本文以3.7版本为例:<dependency><group

lang3官方版本
日期处理类DateUtils 【org.apache.commons.lang3.time.DateUtils】

Maven依赖
本文以3.7版本为例:


	org.apache.commons
	commons-lang3
	3.7

DateUtils 常用API

   // 将字符串转化为日期类型 
   Date date = DateUtils.parseDate("2018-10-20", "yyyy-MM-dd");

   // 第二个参数设置为负数代表日期向前几天
   // 日期向后加5天 2018-10-20 --》 2018-10-25
   Date date1 = DateUtils.addDays(date, 5);

   // 判断是否是同一天
   boolean isSame = DateUtils.isSameDay(date, date1);

这里只举例几个常用API,其他API可以参考下文

DateUtils API解析

    /**
     * 以秒为标准时间的毫秒数
     */
    public static final long MILLIS_PER_SECOnD= 1000
 
    /**
     *以分钟为标准时间的毫秒数
     */
  	public static final long MILLIS_PER_MINUTE = 60000L;

    /**
     *以小时为标准时间的毫秒数
     */
    public static final long MILLIS_PER_HOUR = 3600000L;

    /**
     * 以天为标准时间的毫秒数
     */
    public static final long MILLIS_PER_DAY = 86400000L;

    /**
     * 这个类型是半个月, 所以这可以代表日期是上还是下半个月 。
     */
    public static final int SEMI_MOnTH= 1001

	private static final int[][] fields = new int[][]{{14}, {13}, {12}, {11, 10}, {5, 5, 9}, {2, 1001}, {1}, {0}};
    
    /**
     * 周范围, 从星期日开始 。
     */
    public static final int RANGE_WEEK_SUNDAY = 1

    /**
     * 周范围,从星期一开始 。
     */
    public static final int RANGE_WEEK_MOnDAY= 2

    /**
     * 周范围,从关注的那天开始。
     */
    public static final int RANGE_WEEK_RELATIVE = 3

    /**
     * 周范围,以关注的天为中心。
     */
    public static final int RANGE_WEEK_CENTER = 4

     /**
     * 月范围,从星期日开始 。
     */
    public static final int RANGE_MONTH_SUNDAY = 5

    /**
     * 月范围,从星期一开始 。
     */
    public static final int RANGE_MONTH_MOnDAY= 6

     /**
     * 不应在标准编成构造获取实列, 而应该直接使用类中的静态方法,如:DateUtils.parseDate(str) 。
     * 此构造函数意在允许需要一个javabeen实列的工具中使用 。  
     */
    public DateUtils()

    /**
     * 判断两个日期时间是否是同一天 。
     *
     * @param date1  第一个日期,不可修改,非null
     * @param date2  第二个日期,不可修改,非null
     */
    public static boolean isSameDay(final Date date1, final Date date2)

    /**
     * 判断两个日历时间是否是同一天 。   
     *
     * @param cal1  第一个日历,不可修改,非null
     * @param cal2  第二个日历,不可修改,非null
     */
    public static boolean isSameDay(final Calendar cal1, final Calendar cal2)

    /**
     * 判断两个日期是否相同
     * 这种方法比较两个对象的毫秒时间 
     *
     * @param date1  第一个日期,不可修改,非null
     * @param date2  第二个日期,不可修改,非null
     */
    public static boolean isSameInstant(final Date date1, final Date date2)

    /**
     * 判断两个日历是否相同
     * 这种方法比较两个对象的毫秒时间 
     *
     * @param cal1  第一个日历,不可修改,非null
     * @param cal2  第二个日历,不可修改,非null
     */
    public static boolean isSameInstant(final Calendar cal1, final Calendar cal2)

    /**
     * 判断两个日历本地时间是否相同
     * 除了比较数值外两个日历对象的类型还要相同
     *
     * @param cal1  第一个日历,不可修改,非null
     * @param cal2  第二个日历,不可修改,非null
     */
    public static boolean isSameLocalTime(final Calendar cal1, final Calendar cal2)

    /**
     * 尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str 。
     * 
     * 解析时会逐个使用parsePatterns中的格式,如果都没有匹配上, 则抛出异常ParseException 。
     * 
     * @param str  被解析的时间字符串,非null
     * @param parsePatterns  用于解析str的时间格式,有一个或几个,非null
     */
    public static Date parseDate(final String str, final String... parsePatterns) throws ParseException

    /**
     * 尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str 。
     * 解析时会使用给定的日期格式符locale 。
     * 
     * 解析时会逐个使用parsePatterns中的格式,如果都没有匹配上, 则抛出异常ParseException 。
     * 
     * @param str  被解析的时间字符串,非null
     * @param locale 使用locale中的日期格式符,如果为null,则使用系统默认的locale
     * @param parsePatterns  用于解析str的时间格式,有一个或几个,非null
     */
    public static Date parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException

    /**
     * 尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str 。
     *
     * 解析时会逐个使用parsePatterns中的格式,如果都没有匹配上, 则抛出异常ParseException 。
     * 解析器解析严格不允许的日期, 如:"February 942, 1996" 。
     * 
     * @param str  被解析的时间字符串,非null
     * @param parsePatterns  用于解析str的时间格式,有一个或几个,非null
     */
    public static Date parseDateStrictly(final String str, final String... parsePatterns) throws ParseException

    /**
     * 尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str 。
     * 解析时会使用给定的日期格式符locale 。
     *
     * 解析时会逐个使用parsePatterns中的格式,如果都没有匹配上, 则抛出异常ParseException 。
     * 解析器解析严格不允许的日期, 如:"February 942, 1996" 。
     * 
     * @param str  被解析的时间字符串,非null
     * @param locale 使用locale中的日期格式符,如果为null,则使用系统默认的locale
     * @param parsePatterns  用于解析str的时间格式,有一个或几个,非null
     */
    public static Date parseDateStrictly(final String str, final Locale locale, final String... parsePatterns) throws ParseException

    /**
     * 在日期date上增加amount年 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的年数,可能为负数
     */
    public static Date addYears(final Date date, final int amount)

    /**
     * 在日期date上增加amount月 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的月数,可能为负数
     */
    public static Date addMonths(final Date date, final int amount)

    /**
     * 在日期date上增加amount周 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的周数,可能为负数
     */
    public static Date addWeeks(final Date date, final int amount)

    /**
     * 在日期date上增加amount天 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的天数,可能为负数
     */
    public static Date addDays(final Date date, final int amount)

    /**
     * 在日期date上增加amount小时 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的小时数,可能为负数
     */
    public static Date addHours(final Date date, final int amount)

    /**
     * 在日期date上增加amount分钟 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的分钟数,可能为负数
     */
    public static Date addMinutes(final Date date, final int amount)

    /**
     * 在日期date上增加amount秒 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的秒数,可能为负数
     */
    public static Date addSeconds(final Date date, final int amount)

    /**
     * 在日期date上增加amount 毫秒 。
     *
     * @param date  处理的日期,非null
     * @param amount  要加的毫秒数,可能为负数
     */
    public static Date addMilliseconds(final Date date, final int amount)

     /**
     * 给日期data设置一个新的年份 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的年份
     */
    public static Date setYears(final Date date, final int amount)

     /**
     * 给日期data设置一个新的月份 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的月份
     */
    public static Date setMonths(final Date date, final int amount)

    /**
     * 给日期data设置一个新的天 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的天
     */
    public static Date setDays(final Date date, final int amount)

    /**
     * 给日期data设置一个新的小时 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的小时
     */
    public static Date setHours(final Date date, final int amount)

     /**
     * 给日期data设置一个新的分钟 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的分钟
     */
    public static Date setMinutes(final Date date, final int amount)

    /**
     * 给日期data设置一个新的秒 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的秒
     */
    public static Date setSeconds(final Date date, final int amount)

    /**
     * 给日期data设置一个新的毫秒 。
     *
     * @param date 处理的日期,非null
     * @param amount 要设置的毫秒
     */
    public static Date setMilliseconds(final Date date, final int amount)

    /**
     * 将一个日期放到日历中 。
     */
    public static Calendar toCalendar(final Date date)

    /**
     * 根据阈值field四舍五入日历date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 14:00:00.000;
     * 如果field为MONTH,它将返回 1 April 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值
     */
    public static Date round(final Date date, final int field)

    /**
     * 根据阈值field四舍五入日历date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 14:00:00.000;
     * 如果field为MONTH,它将返回 1 April 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值  
     */
    public static Calendar round(final Calendar date, final int field)

    /**
     * 根据阈值field四舍五入日历date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 14:00:00.000;
     * 如果field为MONTH,它将返回 1 April 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值 
     */
    public static Date round(final Object date, final int field)

    /**
     * 根据阈值field截取日期date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 13:00:00.000;
     * 如果field为MONTH,它将返回 1 Mar 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值 
     */
    public static Date truncate(final Date date, final int field)

     /**
     * 根据阈值field截取日历date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 13:00:00.000;
     * 如果field为MONTH,它将返回 1 Mar 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值
     */
    public static Calendar truncate(final Calendar date, final int field)

    /**
     * 根据阈值field截取日期date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 13:00:00.000;
     * 如果field为MONTH,它将返回 1 Mar 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值
     */
    public static Date truncate(final Object date, final int field)

    /**
     * 根据阈值field向上舍入日期date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 14:00:00.000;
     * 如果field为MONTH,它将返回 1 Apr 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值
     */
    public static Date ceiling(final Date date, final int field)

    /**
     * 根据阈值field向上舍入日期date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 14:00:00.000;
     * 如果field为MONTH,它将返回 1 Apr 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值
     */
    public static Calendar ceiling(final Calendar date, final int field)

    /**
     * 根据阈值field向上舍入日期date 。
     *
     * 例如, 如果你的时间是 28 Mar 2002 13:45:01.231,
     * 如果field为HOUR,它将返回 28 Mar 2002 14:00:00.000;
     * 如果field为MONTH,它将返回 1 Apr 2002 0:00:00.000 。
     * 
     * @param date  处理的日期,非null
     * @param field  阈值
     */
    public static Date ceiling(final Object date, final int field)

    /**
     * 根据指定的时间focus和范围类型rangeStyle构建一个时间范围迭代器 。
     *
     * 如传入的时间是Thursday, July 4, 2002,范围类型是RANGE_MONTH_SUNDAY,
     * 则返回迭代器的范围是从Sunday, June 30, 2002 到 Saturday, August 3, 2002
     *
     * @param focus  指定的时间
     * @param rangeStyle  范围类型,值必须是如下之一:
     * DateUtils.RANGE_MONTH_SUNDAY, 
     * DateUtils.RANGE_MONTH_MONDAY,
     * DateUtils.RANGE_WEEK_SUNDAY,
     * DateUtils.RANGE_WEEK_MONDAY,
     * DateUtils.RANGE_WEEK_RELATIVE,
     * DateUtils.RANGE_WEEK_CENTER
     */
    public static Iterator iterator(final Date focus, final int rangeStyle)

    /**
     * 根据指定的时间focus和范围类型rangeStyle构建一个时间范围迭代器 。
     *
     * 如传入的时间是Thursday, July 4, 2002,范围类型是RANGE_MONTH_SUNDAY,
     * 则返回迭代器的范围是从Sunday, June 30, 2002 到 Saturday, August 3, 2002
     *
     * @param focus  指定的时间
     * @param rangeStyle  范围类型,值必须是如下之一:
     * DateUtils.RANGE_MONTH_SUNDAY, 
     * DateUtils.RANGE_MONTH_MONDAY,
     * DateUtils.RANGE_WEEK_SUNDAY,
     * DateUtils.RANGE_WEEK_MONDAY,
     * DateUtils.RANGE_WEEK_RELATIVE,
     * DateUtils.RANGE_WEEK_CENTER
     */
    public static Iterator iterator(final Calendar focus, final int rangeStyle)

    /**
     * 根据指定的时间focus和范围类型rangeStyle构建一个时间范围迭代器 。
     *
     * 如传入的时间是Thursday, July 4, 2002,范围类型是RANGE_MONTH_SUNDAY,
     * 则返回迭代器的范围是从Sunday, June 30, 2002 到 Saturday, August 3, 2002
     *
     * @param focus  指定的时间
     * @param rangeStyle  范围类型,值必须是iterator(Calendar, int)方法注释中列出的
     */
    public static Iterator iterator(final Object focus, final int rangeStyle)

	/**
     * 返回指定分段内的毫秒数 。 所有大于分段的DateFields将被忽略 。
     *
     * 请求任何日期毫秒,将返回当前秒的毫秒数 (返回一个数字在0和999之间) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小于或等于MILLISECOND,将返回0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538
     *  January 6, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538
     *  January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10538
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     *   (a millisecond cannot be split in milliseconds)
     * 
     * @param calendar 获取值得日历对象,非null
     * @param fragment 分段值
     */
  	public static long getFragmentInMilliseconds(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段内的秒数 。 所有大于分段的DateFields将被忽略 。
     *
     * 请求任何日期秒,将返回当前的分钟的秒数 (返回一个数字在0和59之间) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小于或等于SECOND,将返回0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10
     *  January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10
     *  January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 26110
     *   (7*3600 + 15*60 + 10)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar 获取值得日历对象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInSeconds(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段内的分钟数 。 所有大于分段的DateFields将被忽略 。
     *
     * 请求任何日期分钟,将返回当前的小时的分钟数 (返回一个数字在0和59之间)
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小于或等于MINUTE,将返回0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15
     *  January 6, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15
     *  January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 15
     *  January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 435 (7*60 + 15)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar 获取值得日历对象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInMinutes(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段内的小时数 。 所有大于分段的DateFields将被忽略 。
     *
     * 请求任何日期小时,将返回当前的天的小时数 (返回一个数字在0和23之间) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小于或等于HOUR_OF_DAY,将返回0 。
     *  
     *  January 1, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7
     *  January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7
     *  January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 7
     *  January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 127 (5*24 + 7)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     *  
     * @param calendar 获取值得日历对象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInHours(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段内的天数 。 所有大于分段的DateFields将被忽略 。
     *
     * 请求任何日期天数,将返回当前的月的天数 (返回一个数字在1和31之间) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小于或等于DATE,将返回0 。
     * 
     *  January 28, 2008 with Calendar.MONTH as fragment will return 28
     *  February 28, 2008 with Calendar.MONTH as fragment will return 28
     *  January 28, 2008 with Calendar.YEAR as fragment will return 28
     *  February 28, 2008 with Calendar.YEAR as fragment will return 59
     *  January 28, 2008 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar 获取值得日历对象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInDays(final Calendar calendar, final int fragment)

    /**
     * 截取比较两个日历对象的field处的值是否相同 。
     * 
     * @param cal1 第一个日历对象,非null
     * @param cal2 第二个日历对象,非null
     * @param field Calendar中的阈值
     */
    public static boolean truncatedEquals(final Calendar cal1, final Calendar cal2, final int field)

    /**
     * 截取比较两个日期对象的field处的值是否相同 。
     * 
     * @param date1 第一个日期对象,非null
     * @param date2 第二个日期对象,非null
     * @param field Calendar中的阈值
     */
    public static boolean truncatedEquals(final Date date1, final Date date2, final int field)

    /**
     * 截取比较两个日历对象的field处的值 。
     * 如果第一个日历小于、等于、大于第二个,则对应返回负整数、0、正整数
     * 
     * @param cal1 第一个日历对象,非null
     * @param cal2 第二个日历对象,非null
     * @param field Calendar中的阈值
     */
    public static int truncatedCompareTo(final Calendar cal1, final Calendar cal2, final int field)

    /**
     * 截取比较断两个日期对象的field处的值 。
     * 如果第一个日期小于、等于、大于第二个,则对应返回负整数、0、正整数
     * 
     * @param date1 第一个日期对象,非null
     * @param date2 第二个日期对象,非null
     * @param field Calendar中的阈值
     */
    public static int truncatedCompareTo(final Date date1, final Date date2, final int field)

推荐阅读
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
author-avatar
零开始1023_511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有