Package org.aoju.bus.core.date
Class DateTime
java.lang.Object
java.util.Date
org.aoju.bus.core.date.DateTime
- All Implemented Interfaces:
Serializable,Cloneable,Comparable<Date>
包装java.util.Date
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionDateTime()当前时间DateTime(long timeMillis) 给定日期毫秒数的构造给定日期毫秒数的构造DateTime(CharSequence text) 构造格式: yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss yyyy.MM.dd HH:mm:ss yyyy年MM月dd日 HH时mm分ss秒 yyyy-MM-dd yyyy/MM/dd yyyy.MM.dd HH:mm:ss HH时mm分ss秒 yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss.SSS yyyyMMddHHmmss yyyyMMddHHmmssSSS yyyyMMdd EEE, dd MMM yyyy HH:mm:ss z EEE MMM dd HH:mm:ss zzz yyyy yyyy-MM-dd'T'HH:mm:ss'Z' yyyy-MM-dd'T'HH:mm:ss.SSS'Z' yyyy-MM-dd'T'HH:mm:ssZ yyyy-MM-dd'T'HH:mm:ss.SSSZDateTime(CharSequence text, String format) 构造DateTime(CharSequence text, DateFormat format) 构造DateTime(CharSequence text, DateTimeFormatter formatter) 构建DateTime对象DateTime(CharSequence text, PositionDateParser parser) 构造DateTime(CharSequence text, PositionDateParser parser, boolean lenient) 构造给定日期Instant的构造给定日期Instant的构造DateTime(TemporalAccessor temporalAccessor) 给定日期TemporalAccessor的构造DateTime(ZonedDateTime zonedDateTime) 给定日期ZonedDateTime的构造给定日期的构造给定日期的构造给定日期的构造当前时间 -
Method Summary
Modifier and TypeMethodDescription计算相差时长longbetween(Date date, Fields.Units units) 计算相差时长int获得指定日期是这个日期所在月份的第几天int获得指定日期是星期几,1表示周日,2表示周一获得指定日期是星期几int获得天所在的周是这个月的第几周int获得指定日期是这个日期所在年份的第几天static intget(TemporalAccessor temporalAccessor, TemporalField field) 安全获取时间的某个属性,属性不存在返回0intgetField(int field) 获得日期的某个部分 例如获得年的部分,则使用 getField(Calendar.YEAR)intgetField(Fields.Type field) 获得日期的某个部分 例如获得年的部分,则使用 getField(Calendar.YEAR)获得一周的第一天,默认为周一int获得本月的最后一天获取时区获取时区IDinthour(boolean is24HourClock) 获得指定日期的小时数部分boolean是否在给定日期之后或与给定日期相等booleanisAfterOrEquals(Date date) 是否在给定日期之后或与给定日期相等booleanisAM()是否为上午boolean是否在给定日期之前booleanisBeforeOrEquals(Date date) 是否在给定日期之前或与给定日期相等boolean当前日期是否在日期指定范围内 起始日期和结束日期可以互换boolean是否为本月最后一天boolean是否闰年boolean对象是否可变 如果为不可变对象,以下方法将返回新方法:offset(Fields.Type, int)setField(Fields.Type, int)setField(int, int)如果为不可变对象,setTime(long)将抛出异常booleanisPM()是否为下午boolean是否为周末,周末指周六或者周日int获得指定日期的毫秒数部分intminute()获得指定日期的分钟数部分 例如:10:04:15.250 = 4intmonth()获得月份,从0开始计数获得月份int获得月份,从1开始计数 由于Calendar中的月份按照0开始计数,导致某些需求容易误解,因此如果想用1表示一月,2表示二月则调用此方法static DateTimenow()现在的时间static DateTimeof(long timeMillis) 转换时间戳为 DateTimestatic DateTime构造static LocalDateTimeof(TemporalAccessor temporalAccessor) TemporalAccessor转LocalDateTime,使用默认时区static DateTime转换Calendar为 DateTimestatic DateTime转换JDK date为 DateTimeoffset(Fields.Type type, int offset) 调整日期和时间 如果此对象为可变对象,返回自身,否则返回新对象,设置是否可变对象见setMutable(boolean)offsetNew(Fields.Type type, int offset) 调整日期和时间 返回调整后的新DateTime,不影响原对象intquarter()获得当前日期所属季度,从1开始计数获得当前日期所属季度intsecond()获得指定日期的秒数部分setField(int field, int value) 设置日期的某个部分 如果此对象为可变对象,返回自身,否则返回新对象,设置是否可变对象见setMutable(boolean)setField(Fields.Type field, int value) 设置日期的某个部分 如果此对象为可变对象,返回自身,否则返回新对象,设置是否可变对象见setMutable(boolean)setFirstDayOfWeek(Fields.Week firstDayOfWeek) 设置一周的第一天 JDK的Calendar中默认一周的第一天是周日,将此默认值设置为周一 设置一周的第一天主要影响weekOfMonth()和weekOfYear()两个方法setFirstWeekOfDays(int firstWeekOfDays) 设置第一周最少天数setMutable(boolean mutable) 设置对象是否可变 如果为不可变对象,以下方法将返回新方法:offset(Fields.Type, int)setField(Fields.Type, int)setField(int, int)如果为不可变对象,setTime(long)将抛出异常voidsetTime(long time) setTimeZone(TimeZone timeZone) 设置时区转换为Calendar, 默认LocaletoCalendar(Locale locale) 转换为CalendartoCalendar(TimeZone zone) 转换为CalendartoCalendar(TimeZone zone, Locale locale) 转换为Calendar转为"yyyy-MM-dd" 格式字符串转换为Date考虑到很多框架(例如Hibernate)的兼容性,提供此方法返回JDK原生的Date对象转为DatetoString()转为"yyyy-MM-dd yyyy-MM-dd HH:mm:ss " 格式字符串 如果时区被设置,会转换为其时区对应的时间,否则转换为当前地点对应的时区转为字符串toString(DateFormat format) 转为字符串转为"yyyy-MM-dd yyyy-MM-dd HH:mm:ss " 格式字符串 如果时区不为null,会转换为其时区对应的时间,否则转换为当前时间对应的时区toString(DatePrinter format) 转为字符串转为"HH:mm:ss" 格式字符串int获得指定日期是所在月份的第几周 此方法返回值与一周的第一天有关,比如: 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2) 如果一周的第一天为周一,那这天是第一周(返回1)int获得指定日期是所在年份的第几周 此方法返回值与一周的第一天有关,比如: 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2) 如果一周的第一天为周一,那这天是第一周(返回1)intyear()获得年的部分Methods inherited from class java.util.Date
after, before, clone, compareTo, equals, from, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear, hashCode, parse, setDate, setHours, setMinutes, setMonth, setSeconds, setYear, toGMTString, toInstant, toLocaleString, UTC
-
Constructor Details
-
DateTime
public DateTime()当前时间 -
DateTime
-
DateTime
-
DateTime
-
DateTime
-
DateTime
-
DateTime
-
DateTime
给定日期TemporalAccessor的构造- Parameters:
temporalAccessor-TemporalAccessor对象
-
DateTime
给定日期ZonedDateTime的构造- Parameters:
zonedDateTime-ZonedDateTime对象
-
DateTime
public DateTime(long timeMillis) 给定日期毫秒数的构造- Parameters:
timeMillis- 日期毫秒数
-
DateTime
给定日期毫秒数的构造- Parameters:
timeMillis- 日期毫秒数timeZone- 时区
-
DateTime
构造格式:- yyyy-MM-dd HH:mm:ss
- yyyy/MM/dd HH:mm:ss
- yyyy.MM.dd HH:mm:ss
- yyyy年MM月dd日 HH时mm分ss秒
- yyyy-MM-dd
- yyyy/MM/dd
- yyyy.MM.dd
- HH:mm:ss
- HH时mm分ss秒
- yyyy-MM-dd HH:mm
- yyyy-MM-dd HH:mm:ss.SSS
- yyyyMMddHHmmss
- yyyyMMddHHmmssSSS
- yyyyMMdd
- EEE, dd MMM yyyy HH:mm:ss z
- EEE MMM dd HH:mm:ss zzz yyyy
- yyyy-MM-dd'T'HH:mm:ss'Z'
- yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
- yyyy-MM-dd'T'HH:mm:ssZ
- yyyy-MM-dd'T'HH:mm:ss.SSSZ
- Parameters:
text- Date字符串
-
DateTime
-
DateTime
构造- Parameters:
text- Date字符串format- 格式化器SimpleDateFormat
-
DateTime
构建DateTime对象- Parameters:
text- Date字符串formatter- 格式化器,DateTimeFormatter
-
DateTime
构造- Parameters:
text- Date字符串parser- 格式化器DateParser,可以使用FormatBuilder
-
DateTime
构造- Parameters:
text- Date字符串parser- 格式化器DateParser,可以使用Fieldslenient- 是否宽容模式
-
-
Method Details
-
of
转换时间戳为 DateTime- Parameters:
timeMillis- 时间戳,毫秒数- Returns:
- DateTime
-
of
-
of
-
of
-
now
-
of
TemporalAccessor转LocalDateTime,使用默认时区- Parameters:
temporalAccessor-TemporalAccessor- Returns:
LocalDateTime
-
get
安全获取时间的某个属性,属性不存在返回0- Parameters:
temporalAccessor- 需要获取的时间对象field- 需要获取的属性- Returns:
- 时间的值,如果无法获取则默认为 0
-
offset
调整日期和时间 如果此对象为可变对象,返回自身,否则返回新对象,设置是否可变对象见setMutable(boolean)- Parameters:
type- 调整的部分Fields.Typeoffset- 偏移量,正数为向后偏移,负数为向前偏移- Returns:
- 如果此对象为可变对象,返回自身,否则返回新对象
-
offsetNew
调整日期和时间 返回调整后的新DateTime,不影响原对象- Parameters:
type- 调整的部分Fields.Typeoffset- 偏移量,正数为向后偏移,负数为向前偏移- Returns:
- 如果此对象为可变对象,返回自身,否则返回新对象
-
getField
获得日期的某个部分 例如获得年的部分,则使用 getField(Calendar.YEAR)- Parameters:
field- 表示日期的哪个部分的枚举Fields.Type- Returns:
- 某个部分的值
-
getField
public int getField(int field) 获得日期的某个部分 例如获得年的部分,则使用 getField(Calendar.YEAR)- Parameters:
field- 表示日期的哪个部分的int值Calendar- Returns:
- 某个部分的值
-
setField
设置日期的某个部分 如果此对象为可变对象,返回自身,否则返回新对象,设置是否可变对象见setMutable(boolean)- Parameters:
field- 表示日期的哪个部分的枚举Fields.Typevalue- 值- Returns:
DateTime
-
setField
设置日期的某个部分 如果此对象为可变对象,返回自身,否则返回新对象,设置是否可变对象见setMutable(boolean) -
setTime
-
year
public int year()获得年的部分- Returns:
- 年的部分
-
quarter
-
quarterEnum
-
month
public int month()获得月份,从0开始计数- Returns:
- 月份
-
monthStartFromOne
public int monthStartFromOne()获得月份,从1开始计数 由于Calendar中的月份按照0开始计数,导致某些需求容易误解,因此如果想用1表示一月,2表示二月则调用此方法- Returns:
- 月份
-
monthEnum
-
weekOfYear
public int weekOfYear()获得指定日期是所在年份的第几周 此方法返回值与一周的第一天有关,比如: 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2) 如果一周的第一天为周一,那这天是第一周(返回1)- Returns:
- 周
-
weekOfMonth
public int weekOfMonth()获得指定日期是所在月份的第几周 此方法返回值与一周的第一天有关,比如: 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2) 如果一周的第一天为周一,那这天是第一周(返回1)- Returns:
- 周
-
dayOfMonth
public int dayOfMonth()获得指定日期是这个日期所在月份的第几天- Returns:
- 天
-
dayOfYear
public int dayOfYear()获得指定日期是这个日期所在年份的第几天- Returns:
- 天
-
dayOfWeek
public int dayOfWeek()获得指定日期是星期几,1表示周日,2表示周一- Returns:
- 星期几
-
dayOfWeekInMonth
public int dayOfWeekInMonth()获得天所在的周是这个月的第几周- Returns:
- 天
-
dayOfWeekEnum
-
hour
public int hour(boolean is24HourClock) 获得指定日期的小时数部分- Parameters:
is24HourClock- 是否24小时制- Returns:
- 小时数
-
minute
public int minute()获得指定日期的分钟数部分 例如:10:04:15.250 = 4- Returns:
- 分钟数
-
second
public int second()获得指定日期的秒数部分- Returns:
- 秒数
-
millsecond
public int millsecond()获得指定日期的毫秒数部分- Returns:
- 毫秒数
-
isAM
public boolean isAM()是否为上午- Returns:
- 是否为上午
-
isPM
public boolean isPM()是否为下午- Returns:
- 是否为下午
-
isWeekend
public boolean isWeekend()是否为周末,周末指周六或者周日- Returns:
- 是否为周末,周末指周六或者周日
-
toCalendar
-
toCalendar
-
toCalendar
-
toCalendar
-
toJdkDate
-
toTimestamp
-
toSqlDate
-
between
-
between
计算相差时长- Parameters:
date- 对比的日期units- 单位Fields.Units- Returns:
- 相差时长
-
isIn
-
isBefore
-
isBeforeOrEquals
是否在给定日期之前或与给定日期相等- Parameters:
date- 日期- Returns:
- 是否在给定日期之前或与给定日期相等
-
isAfter
是否在给定日期之后或与给定日期相等- Parameters:
date- 日期- Returns:
- 是否在给定日期之后或与给定日期相等
-
isAfterOrEquals
是否在给定日期之后或与给定日期相等- Parameters:
date- 日期- Returns:
- 是否在给定日期之后或与给定日期相等
-
isMutable
-
setMutable
设置对象是否可变 如果为不可变对象,以下方法将返回新方法: 如果为不可变对象,setTime(long)将抛出异常- Parameters:
mutable- 是否可变- Returns:
- this
-
getFirstDayOfWeek
-
setFirstDayOfWeek
设置一周的第一天 JDK的Calendar中默认一周的第一天是周日,将此默认值设置为周一 设置一周的第一天主要影响weekOfMonth()和weekOfYear()两个方法- Parameters:
firstDayOfWeek- 一周的第一天- Returns:
- this
- See Also:
-
getTimeZone
-
setTimeZone
-
setFirstWeekOfDays
设置第一周最少天数- Parameters:
firstWeekOfDays- 第一周最少天数- Returns:
- this
-
getZoneId
-
toDateString
-
toTimeString
-
toMsString
- Returns:
- 输出精确到毫秒的标准日期形式
-
toString
-
toString
-
toString
-
toString
转为字符串- Parameters:
format-DatePrinter或FormatBuilder- Returns:
- String
-
toString
转为字符串- Parameters:
format-SimpleDateFormat- Returns:
- String
-
isLastDayOfMonth
public boolean isLastDayOfMonth()是否为本月最后一天- Returns:
- 是否为本月最后一天
-
getLastDayOfMonth
public int getLastDayOfMonth()获得本月的最后一天- Returns:
- 天
-
isLeapYear
public boolean isLeapYear()是否闰年- Returns:
- 是否闰年
- See Also:
-