1.时间工具类
1.1 加减日期
//提供从毫秒到年的加减方法,amount参数为负数代表减
public static Date addMilliseconds(Date date,int amount)
public static Date addSeconds(Date date,int amount)
public static Date addMinites(Date date,int amount)
public static Date addHours(Date date,int amount)
public static Date addDays(Date date,int amount)
public static Date addWeeks(Date date,int amount)
public static Date addMonths(Date date,int amount)
public static Date addYears(Date date,int amount)
1.2 向上取整
向上取整
public static Date ceiling(Date date,int field)
public static Calendar ceiling(Calendar date,int field)
public static Date ceiling(Object date,int field)
field参数为整形,与Calendar中的以下常量值对应
Calendar.MILLISECOND
Calendar.SECOND
Calendar.MINUTE
Calendar.HOUR
Calendar.DATE
Calendar.MONTH
Calendar.YEAR
此外,之所以没有提供对称的向下取整,是因为通过格式化功能很容易获取到对应的整数
1.3 获取序次
//以下方法均有重载方法,第一个参数类型可为Date
//获取当前天数在指定范围内排第几
public static long getFragmentInDays(Calendar calendar,int fragment)
//获取当前小时数在指定范围内排第几
public static long getFragmentInHours(Calendar calendar,int fragment)
//获取当前分钟数在指定范围内排第几
public static long getFragmentInMinutes(Calendar calendar,int fragment)
//获取当前秒数在指定范围内排第几
public static long getFragmentInSeconds(Calendar calendar,int fragment)
//获取当前毫秒数在指定范围内排第几
public static long getFragmentInMilliseconds(Calendar calendar,int fragment)
fragment参数有效取值(没有周)为如下:
Calendar.YEAR
Calendar.MONTH
Calendar.DATE
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND
注意:当指定获取的时间单位大于等于范围时间单位时,如获取某一天在小时内的序次,不会报错,但返回值为0。
1.4时间判定
//判断是否同一天,忽略掉时间
public static boolean isSameDay(Date date1,Date date2)
public static boolean isSameDay(Calendar cal1,Calendar cal2)
//判断是否是同一时间点(比对毫秒数相等)
public static boolean isSameInstant(Date date1,Date date2)
public static boolean isSameInstant(Calendar cal1,Calendar cal2)
//比对两个时间的值是否相等
public static boolean isSameLocalTime(Calendar cal1,Calendar cal2)