Constructor and Description |
---|
CalendarUtil() |
Modifier and Type | Method and Description |
---|---|
static int |
age(Calendar birthday,
Calendar dateToCompare)
计算相对于dateToCompare的年龄,常用于计算指定生日在某年的年龄
按照《最高人民法院关于审理未成年人刑事案件具体应用法律若干问题的解释》第二条规定刑法第十七条规定的“周岁”,按照公历的年、月、日计算,从周岁生日的第二天起算。 |
protected static int |
age(long birthday,
long dateToCompare)
计算相对于dateToCompare的年龄(周岁),常用于计算指定生日在某年的年龄
按照《最高人民法院关于审理未成年人刑事案件具体应用法律若干问题的解释》第二条规定刑法第十七条规定的“周岁”,按照公历的年、月、日计算,从周岁生日的第二天起算。 |
static Calendar |
beginOfDay(Calendar calendar)
修改某天的开始时间
|
static Calendar |
beginOfHour(Calendar calendar)
修改某小时的开始时间
|
static Calendar |
beginOfMinute(Calendar calendar)
修改某分钟的开始时间
|
static Calendar |
beginOfMonth(Calendar calendar)
修改某月的开始时间
|
static Calendar |
beginOfQuarter(Calendar calendar)
修改某季度的开始时间
|
static Calendar |
beginOfSecond(Calendar calendar)
修改秒级别的开始时间,即忽略毫秒部分
|
static Calendar |
beginOfWeek(Calendar calendar)
修改给定日期当前周的开始时间,周一定为一周的开始时间
|
static Calendar |
beginOfWeek(Calendar calendar,
boolean isMondayAsFirstDay)
修改给定日期当前周的开始时间
|
static Calendar |
beginOfYear(Calendar calendar)
修改某年的开始时间
|
static Calendar |
calendar()
创建Calendar对象,时间为默认时区的当前时间
|
static Calendar |
calendar(Calendar calendar,
TimeZone timeZone)
转换为指定时区的Calendar,返回新的Calendar
|
static Calendar |
calendar(Date date)
转换为Calendar对象
|
static Calendar |
calendar(long millis)
转换为Calendar对象,使用当前默认时区
|
static Calendar |
calendar(long millis,
TimeZone timeZone)
转换为Calendar对象
|
static Calendar |
calendar(XMLGregorianCalendar calendar)
转换为Calendar对象
|
static Calendar |
ceiling(Calendar calendar,
DateField dateField,
boolean truncateMillisecond)
修改日期为某个时间字段结束时间
可选是否归零毫秒。 |
static int |
compare(Calendar calendar1,
Calendar calendar2)
|
static Calendar |
endOfDay(Calendar calendar,
boolean truncateMillisecond)
修改某天的结束时间
|
static Calendar |
endOfHour(Calendar calendar,
boolean truncateMillisecond)
修改某小时的结束时间
|
static Calendar |
endOfMinute(Calendar calendar,
boolean truncateMillisecond)
修改某分钟的结束时间
|
static Calendar |
endOfMonth(Calendar calendar,
boolean truncateMillisecond)
修改某月的结束时间
|
static Calendar |
endOfQuarter(Calendar calendar,
boolean truncateMillisecond)
获取某季度的结束时间
|
static Calendar |
endOfSecond(Calendar calendar,
boolean truncateMillisecond)
修改秒级别的结束时间,即毫秒设置为999
|
static Calendar |
endOfWeek(Calendar calendar,
boolean isSundayAsLastDay,
boolean truncateMillisecond)
修改某周的结束时间
|
static Calendar |
endOfYear(Calendar calendar,
boolean truncateMillisecond)
修改某年的结束时间
|
static String |
formatChineseDate(Calendar calendar,
boolean withTime)
将指定Calendar时间格式化为纯中文形式,比如:
2018-02-24 12:13:14 转换为 二〇一八年二月二十四日(withTime为false)
2018-02-24 12:13:14 转换为 二〇一八年二月二十四日十二时十三分十四秒(withTime为true)
|
static int |
getBeginValue(Calendar calendar,
DateField dateField)
获取指定日期字段的最小值,例如分钟的最小值是0
|
static int |
getBeginValue(Calendar calendar,
int dateField)
获取指定日期字段的最小值,例如分钟的最小值是0
|
static int |
getEndValue(Calendar calendar,
DateField dateField)
获取指定日期字段的最大值,例如分钟的最大值是59
|
static int |
getEndValue(Calendar calendar,
int dateField)
获取指定日期字段的最大值,例如分钟的最大值是59
|
static int |
getField(Calendar calendar,
DateField field)
获得日期的某个部分
例如获得年的部分,则使用 getField(DatePart.YEAR) |
static boolean |
isAM(Calendar calendar)
是否为上午
|
static boolean |
isFirstDayOfMonth(Calendar calendar)
是否为本月第一天
|
static boolean |
isLastDayOfMonth(Calendar calendar)
是否为本月最后一天
|
static boolean |
isPM(Calendar calendar)
是否为下午
|
static boolean |
isSameDay(Calendar cal1,
Calendar cal2)
比较两个日期是否为同一天
|
static boolean |
isSameInstant(Calendar date1,
Calendar date2)
检查两个Calendar时间戳是否相同。
|
static boolean |
isSameMonth(Calendar cal1,
Calendar cal2)
比较两个日期是否为同一月
同一个月的意思是:ERA(公元)、year(年)、month(月)都一致。 |
static boolean |
isSameWeek(Calendar cal1,
Calendar cal2,
boolean isMon)
比较两个日期是否为同一周
同一个周的意思是:ERA(公元)、year(年)、month(月)、week(周)都一致。 |
static boolean |
isSameYear(Calendar cal1,
Calendar cal2)
比较两个日期是否为同一年
同一个年的意思是:ERA(公元)、year(年)都一致。 |
static Calendar |
parse(CharSequence str,
PositionDateParser parser,
boolean lenient)
使用指定
DateParser 解析字符串为Calendar |
static Calendar |
parseByPatterns(CharSequence str,
Locale locale,
boolean lenient,
String... parsePatterns)
通过给定的日期格式解析日期时间字符串。
|
static Calendar |
parseByPatterns(CharSequence str,
Locale locale,
String... parsePatterns)
通过给定的日期格式解析日期时间字符串。
|
static Calendar |
parseByPatterns(CharSequence str,
String... parsePatterns)
通过给定的日期格式解析日期时间字符串。
|
static Calendar |
round(Calendar calendar,
DateField dateField)
修改日期为某个时间字段四舍五入时间
|
static Instant |
toInstant(Calendar calendar)
Calendar
Instant 对象 |
static LocalDateTime |
toLocalDateTime(Calendar calendar)
Calendar 转换为 LocalDateTime ,使用系统默认时区 |
static Calendar |
truncate(Calendar calendar,
DateField dateField)
修改日期为某个时间字段起始时间
|
static String |
yearAndQuarter(Calendar cal)
获得指定日期年份和季度
格式:[20131]表示2013年第一季度 |
public static Calendar calendar()
public static Calendar calendar(Date date)
date
- 日期对象public static Calendar calendar(XMLGregorianCalendar calendar)
calendar
- 日期对象public static Calendar calendar(long millis)
millis
- 时间戳public static Calendar calendar(long millis, TimeZone timeZone)
millis
- 时间戳timeZone
- 时区public static Calendar calendar(Calendar calendar, TimeZone timeZone)
calendar
- 时间timeZone
- 新时区public static boolean isAM(Calendar calendar)
calendar
- Calendar
public static boolean isPM(Calendar calendar)
calendar
- Calendar
public static Calendar truncate(Calendar calendar, DateField dateField)
calendar
- Calendar
dateField
- 保留到的时间字段,如定义为 DateField.SECOND
,表示这个字段不变,这个字段以下字段全部归0Calendar
public static Calendar ceiling(Calendar calendar, DateField dateField, boolean truncateMillisecond)
有时候由于毫秒部分必须为0(如MySQL数据库中),因此在此加上选项。
public static Calendar endOfSecond(Calendar calendar, boolean truncateMillisecond)
public static Calendar endOfHour(Calendar calendar, boolean truncateMillisecond)
public static Calendar endOfMinute(Calendar calendar, boolean truncateMillisecond)
public static Calendar beginOfWeek(Calendar calendar, boolean isMondayAsFirstDay)
public static Calendar endOfWeek(Calendar calendar, boolean isSundayAsLastDay, boolean truncateMillisecond)
public static Calendar endOfMonth(Calendar calendar, boolean truncateMillisecond)
public static Calendar endOfQuarter(Calendar calendar, boolean truncateMillisecond)
public static Calendar endOfYear(Calendar calendar, boolean truncateMillisecond)
public static boolean isSameDay(Calendar cal1, Calendar cal2)
cal1
- 日期1cal2
- 日期2public static boolean isSameWeek(Calendar cal1, Calendar cal2, boolean isMon)
cal1
- 日期1cal2
- 日期2isMon
- 一周的第一天是否为周一。国内第一天为星期一,国外第一天为星期日public static boolean isSameMonth(Calendar cal1, Calendar cal2)
cal1
- 日期1cal2
- 日期2public static boolean isSameYear(Calendar cal1, Calendar cal2)
cal1
- 日期1cal2
- 日期2public static boolean isSameInstant(Calendar date1, Calendar date2)
检查两个Calendar时间戳是否相同。
此方法检查两个Calendar的毫秒数时间戳是否相同。
date1
- 时间1date2
- 时间2null
返回true,否则有null
返回falsepublic static String yearAndQuarter(Calendar cal)
cal
- 日期public static int getBeginValue(Calendar calendar, DateField dateField)
calendar
- Calendar
dateField
- DateField
Calendar.getActualMinimum(int)
public static int getBeginValue(Calendar calendar, int dateField)
calendar
- Calendar
dateField
- DateField
Calendar.getActualMinimum(int)
public static int getEndValue(Calendar calendar, DateField dateField)
calendar
- Calendar
dateField
- DateField
Calendar.getActualMaximum(int)
public static int getEndValue(Calendar calendar, int dateField)
calendar
- Calendar
dateField
- DateField
Calendar.getActualMaximum(int)
public static int getField(Calendar calendar, DateField field)
public static Instant toInstant(Calendar calendar)
Instant
对象calendar
- Date对象Instant
对象public static LocalDateTime toLocalDateTime(Calendar calendar)
Calendar
转换为 LocalDateTime
,使用系统默认时区calendar
- Calendar
LocalDateTime
public static int compare(Calendar calendar1, Calendar calendar2)
calendar1
- 日期1calendar2
- 日期2public static int age(Calendar birthday, Calendar dateToCompare)
birthday
- 生日dateToCompare
- 需要对比的日期public static String formatChineseDate(Calendar calendar, boolean withTime)
2018-02-24 12:13:14 转换为 二〇一八年二月二十四日(withTime为false) 2018-02-24 12:13:14 转换为 二〇一八年二月二十四日十二时十三分十四秒(withTime为true)
calendar
- Calendar
withTime
- 是否包含时间部分public static Calendar parseByPatterns(CharSequence str, String... parsePatterns) throws DateException
str
- 日期时间字符串,非空parsePatterns
- 需要尝试的日期时间格式数组,非空, 见SimpleDateFormatIllegalArgumentException
- if the date string or pattern array is nullDateException
- if none of the date patterns were suitablepublic static Calendar parseByPatterns(CharSequence str, Locale locale, String... parsePatterns) throws DateException
str
- 日期时间字符串,非空locale
- 地区,当为null
时使用Locale.getDefault()
parsePatterns
- 需要尝试的日期时间格式数组,非空, 见SimpleDateFormatIllegalArgumentException
- if the date string or pattern array is nullDateException
- if none of the date patterns were suitablepublic static Calendar parseByPatterns(CharSequence str, Locale locale, boolean lenient, String... parsePatterns) throws DateException
str
- 日期时间字符串,非空locale
- 地区,当为null
时使用Locale.getDefault()
lenient
- 日期时间解析是否使用严格模式parsePatterns
- 需要尝试的日期时间格式数组,非空, 见SimpleDateFormatIllegalArgumentException
- if the date string or pattern array is nullDateException
- if none of the date patterns were suitableCalendar.isLenient()
public static Calendar parse(CharSequence str, PositionDateParser parser, boolean lenient) throws DateException
DateParser
解析字符串为Calendar
str
- 日期字符串parser
- DateParser
lenient
- 是否宽容模式Calendar
,解析失败抛出异常DateException
- 解析失败抛出此异常protected static int age(long birthday, long dateToCompare)
birthday
- 生日dateToCompare
- 需要对比的日期public static boolean isFirstDayOfMonth(Calendar calendar)
calendar
- Calendar
Copyright © 2025. All rights reserved.