public final class Datetimes extends Object
e.g 将字符串转成日期 Datetimes.parseDate("2005-01-21") = Fri Jan 21 00:00:00 CST 2005 Datetimes.parseDatetime("2005-01-21 12:04:33") = Fri Jan 21 00:00:00 CST 2005 将日期格式化输出 Datetimes.formatDate(new Date()) = 2007-03-19 Datetimes.formatDatetime(new Date()) =2007-03-19 11:18:14 取得特殊日期 1 得到指定日期所在周的第一天的日期 java.util.Date date = Datetimes.getFirstDayInWeek(date); 2 得到指定日期所在周的周末的日期 java.util.Date date = Datetimes.getLastDayInWeek(date); 3 得到指定日期所在月的第一天的日期 java.util.Date date = Datetimes.getFirstDayInMonth(date); 4 得到指定日期所在月的最后一天的日期 java.util.Date date = Datetimes.getLastDayInMonth(date); 5 得到指定日期所在季度的第一天的日期 java.util.Date date = Datetimes.getFirstDayInSeason(date); 6 得到指定日期所在季度的最后一天的日期 java.util.Date date = Datetimes.getLastDayInSeason(date); 7 得到指定日期所在年度的第一天的日期 java.util.Date date = Datetimes.getFirstDayInYear(date); 8 得到指定日期所在年度的最后一天的日期 java.util.Date date = Datetimes.getLastDayInYear(date); 9 取得下一个周期的时间 Datetimes.getNextPeriodMinute(new Date(), 30, true)
限定符和类型 | 字段和说明 |
---|---|
static String |
dateStyle |
static String |
dateStyleWithoutYear |
static String |
datetimeAllStyle |
static String |
datetimeStartWithMonthStyle |
static String |
datetimeStyle |
static String |
datetimeWithoutSecondStyle |
构造器和说明 |
---|
Datetimes() |
限定符和类型 | 方法和说明 |
---|---|
static Date |
addDate(Date date,
int amount)
在指定的日期基础上移动天数,月份、年份自动变化
e.g
Datetimes.addDate(new Date(), -1) = 昨天
Datetimes.addDate(new Date(), 1) = 明天
|
static Date |
addHour(Date date,
int amount)
在指定的日期基础上移动小时数,日、月、年自动变化,采用24小时制
|
static Date |
addMinute(Date date,
int amount)
在指定的日期基础上移动分数,时、日、月、年自动变化
|
static Date |
addMonth(Date date,
int amount)
在指定的日期基础上移动月份,年份自动变化
|
static Date |
addSecond(Date date,
int amount)
在指定的日期基础上移动秒数,分、时、日、月、年自动变化
|
static Date |
addYear(Date date,
int amount)
在指定的日期基础上移动年份
|
static boolean |
between(Date checkupDate,
Date startDate,
Date endDate,
boolean isIncludeBorderline)
检测时间点是否在时间段之内
e.g. |
static boolean |
checkOverup(Date startDate1,
Date endDate1,
Date startDate2,
Date endDate2,
boolean allowIncludeBorderline)
判断两个时间段是否有叠加
e.g. |
static Date |
conversionToServerDate(Date localDate,
TimeZone localZone)
将地区的时间转换成服务器的时间
服务器在GMT+08:00 东8区
conversionToServerDate(Date(2007-06-29 17:20:27), TimeZone.getTimeZone("GMT+09:00")) : 2007-06-29 16:20:27
conversionToServerDate(Date(2007-06-29 17:20:27), TimeZone.getTimeZone("GMT+00:00")) : 2007-06-30 01:20:27
|
static long[] |
detailInterval(Date theDay,
Date otherDay)
计算日期详细时间间隔
|
static String |
format(Date date,
Locale locale)
将日期转成字符串, 指定显示格式
|
static String |
format(Date date,
String pattern)
将日期转成字符串, 指定显示格式,使用当前登录者所在时区和语言
|
static String |
format(Date date,
String pattern,
Locale locale)
将日期转成字符串, 指定显示格式
|
static String |
format(Date date,
String pattern,
TimeZone timeZone)
将日期转成字符串, 指定显示格式,并转换成指定区域的时区
|
static String |
format(Date date,
String pattern,
TimeZone zone,
Locale locale)
将日期转成字符串, 指定显示格式
|
static String |
formatDate(Date date)
将日期转成字符串,格式为yyyy-MM-dd,使用当前登录者所在时区和语言
|
static String |
formatDate(Date date,
Locale locale)
将日期转成字符串, 指定显示格式,使用当前登录者所在时区和语言
|
static String |
formatDateOrDatetime(Date date)
格式化为日期或者日期+时间, 判别依据是:时、分、秒、毫秒都为0
|
static String |
formatDateStr(String dateStr,
String pattern)
将服务器的字符串时间转换成客户端的字符串时间
|
static String |
formatDatetime(Date datetime)
将日期转成字符串,格式为yyyy-MM-dd HH:mm:ss,使用当前登录者所在时区和语言
|
static String |
formatDatetime(Date datetime,
TimeZone timezone)
将日期转成字符串,格式为yyyy-MM-dd HH:mm:ss,使用当前登录者所在时区和语言
|
static String |
formatDatetimeWithoutSecond(Date datetime)
将日期转成字符串,格式为yyyy-MM-dd HH:mm,使用当前登录者所在时区和语言
|
static String |
formateToLocaleDate(Date date)
日期转换成字符串,采用当前登录的语言
|
static String |
formateToLocaleDatetime(Date date)
日期转换成字符串,采用当前登录的语言
|
static long[] |
formatLongToTimeStr(long millisecond)
long型数据转换
|
static String |
formatMins2TimeStr(Integer times)
将分钟数转换成XX小时XX分
|
static String |
formatNoTimeZone(Date date,
String pattern) |
static Date |
getFirstDayInMonth(Date date)
得到指定日期所在月的第一天的日期, 时分为00:00:00(先转为客户端时区时间,再取时间)
|
static Date |
getFirstDayInMonth(Date date,
Locale locale)
得到指定日期所在月的第一天的日期, 时分为00:00:00(先转为客户端时区时间,再取时间)
|
static Date |
getFirstDayInMonth0(Date date)
得到指定日期所在月的第一天的日期, 时分为00:00:00(先转为客户端时区时间,再取时间)
|
static Date |
getFirstDayInSeason(Date date)
得到指定日期所在季度的第一天的日期, 时分为00:00:00(先转为客户端时区时间,再取时间)
|
static Date |
getFirstDayInSeason(Date date,
Locale locale) |
static Date |
getFirstDayInSeason0(Date date)
得到指定日期所在季度的第一天的日期, 时分为不一定00:00:00 (先取时间,再转为客户端时区时间)
|
static Date |
getFirstDayInWeek(Date date)
得到指定日期所在周的第一天的日期, 时分为00:00:00(先转为客户端时区时间,再取开始时间)
|
static Date |
getFirstDayInWeek(Date date,
Locale locale)
得到指定日期所在周的第一天的日期, 时分为00:00:00
|
static Date |
getFirstDayInWeek0(Date date)
得到指定日期所在周的第一天的日期, 时分不一定为00:00:00 (先取开始时间,再转为客户端时区时间)
|
static Date |
getFirstDayInYear(Date date)
得到指定日期所在年度的第一天的日期, 时分为00:00:00(先转为客户端时区时间,再取时间)
|
static Date |
getFirstDayInYear(Date date,
Locale locale) |
static Date |
getFirstDayInYear0(Date date)
得到指定日期所在年度的第一天的日期, 时分为00:00:00(先取时间,再转为客户端时区时间)
|
static Date |
getFirstNoTimeZone(Date date) |
static Date |
getFirstTime(Date date)
获取指定日期的开始时间,并转换成客户端时区对应的时间
|
static String |
getFirstTimeStr(String dateStr)
得到指定天开始的时间2008-08-08 00:00:00字符串
|
static Date |
getLastDayInMonth(Date date)
得到指定日期所在月的最后一天的日期, 时分23:59:59(先转为客户端时区时间,再取时间)
|
static Date |
getLastDayInMonth(Date date,
Locale locale) |
static Date |
getLastDayInMonth0(Date date)
得到指定日期所在月的最后一天的日期, 时分为不一定为23:59:59 (先取时间,再转为客户端时区时间)
|
static Date |
getLastDayInSeason(Date date)
得到指定日期所在季度的最后一天的日期, 时分为23:59:59(先转为客户端时区时间,再取时间)
|
static Date |
getLastDayInSeason(Date date,
Locale locale) |
static Date |
getLastDayInSeason0(Date date)
得到指定日期所在季度的最后一天的日期, 时分不一定为23:59:59(先取时间,再转为客户端时区时间)
|
static Date |
getLastDayInWeek(Date date)
得到指定日期所在周的周末的日期, 时分为23:59:59(先转为客户端时区时间,再取时间)
|
static Date |
getLastDayInWeek(Date date,
Locale locale)
得到指定日期所在周的周末的日期, 时分为23:59:59
|
static Date |
getLastDayInWeek0(Date date)
得到指定日期所在周的周末的日期, 时分不一定为23:59:59(先取时间,再转为客户端时区时间)
|
static Date |
getLastDayInYear(Date date)
得到指定日期所在年度的最后一天的日期, 时分为23:59:59(先转为客户端时区时间,再取时间)
|
static Date |
getLastDayInYear(Date date,
Locale locale) |
static Date |
getLastDayInYear0(Date date)
得到指定日期所在年度的最后一天的日期, 时分为23:59:59(先取时间,再转为客户端时区时间)
|
static Date |
getLastTime(Date date)
获取指定日期的结束时间,并转换成客户端时区
|
static Date |
getLastTimeNoTimeZone(Date date) |
static String |
getLastTimeStr(String dateStr)
得到指定天结束的时间 2008-08-08 23:59:59字符串
|
static Date |
getNextPeriodMinute(Date date,
int period,
boolean clearSecond)
取得下一个周期的时间
Datetimes.getNextPeriodMinute(new Date(), 30, true)
若当前是:2007-06-23 12:18:25 返回值 2007-06-23 12:30:00
若当前是:2007-06-23 12:30:25 返回值 2007-06-23 13:00:00
Datetimes.getNextPeriodMinute(new Date(), 10, true)
若当前是:2007-06-23 12:18:25 返回值 2007-06-23 12:20:00
若当前是:2007-06-23 12:50:25 返回值 2007-06-23 13:00:00
|
static String |
getServiceFirstTime(String date)
获取对应的服务器的开始时间,包含时分秒
如纽约(客户端)的2017-04-06(实际转换时为2017-04-06 00:00:00),对应的北京 的服务器当前开始时间是2017-04-06 16:00:00
|
static String |
getServiceLastTime(String date)
获取对应的服务器的结束时间,包含时分秒
如纽约(客户端)的2017-04-06(实际转换时为2017-04-06 23:59:59),对应的北京 的服务器当前结束时间是2017-04-07 15:59:59
|
static Date |
getTodayFirstTime()
得到客户端开始时间对应的服务器时间
如:客户端时区(洛杉矶时区)时-8
服务器在北京 东八区+8 ,与服务器时间相差16个小时
纽约当前时间是:2017-02-09 12:00:00,纽约的当天开始时间是2017-02-09 00:00:00 对应的服务器时间是:2017-02-09 16:00:00
|
static Date |
getTodayFirstTime(Date date)
得到指定天开始的时间2008-08-08 00:00:00
|
static Date |
getTodayFirstTime(String dateStr)
得到指定天开始的时间2008-08-08 00:00:00
|
static Date |
getTodayFirstTimeNoTimeZone() |
static Date |
getTodayLastTime()
得到客户端结束时间对应的服务器时间
如:客户端时区(洛杉矶时区)时-8
服务器在北京 东八区+8 ,与服务器时间相差16个小时
纽约当前时间是:2017-02-09 12:00:00,纽约的当天结束时间是2017-02-09 23:59:59 对应的服务器时间是:2017-02-10 15:59:59
|
static Date |
getTodayLastTime(Date date)
得到指定天结束的时间 2008-08-08 23:59:59
|
static Date |
getTodayLastTime(String dateStr)
得到指定天结束的时间 2008-08-08 23:59:59
|
static Date |
getTodayLastTimeNoTimeZone() |
static void |
main(String[] args) |
static long |
minusDay(Date theDay,
Date otherDay)
计算日期间隔的天数
|
static Date |
parse(String dateStr)
将字符串按照默认的格式转换成日期,默认按照当前登录者所在时区转换
支持三种格式:yyyy-MM-dd HH:mm,yyyy-MM-dd,yyyy-MM-dd HH:mm:ss |
static Date |
parse(String dateStr,
String pattern)
将字符串按照制定的格式转换成日期,默认按照当前登录者所在时区转换
|
static Date |
parse(String dateStr,
TimeZone timeZone)
将字符串按照默认的格式转换成日期,按照指定时区转换,如果不采用时区,即用
TimeZone.getDefault()
支持三种格式:yyyy-MM-dd HH:mm,yyyy-MM-dd,yyyy-MM-dd HH:mm:ss |
static Date |
parse(String dateStr,
TimeZone timeZone,
String pattern)
将字符串按照指定的格式转换成日期,采用系统默认语言
|
static Date |
parseDate(String date)
将字符串转成日期,默认按照当前登录者所在时区转换
|
static Date |
parseDatetime(String datetime)
将字符串转成日期,默认按照当前登录者所在时区转换
|
static Date |
parseDatetimeWithoutSecond(String date)
将字符串转换成Date类型,配置前端时间选择器使用,默认按照当前登录者所在时区转换
|
static Date |
parseNoTimeZone(String dateStr,
String pattern)
将字符串按照指定的格式转换成日期,采用系统默认语言
|
static Date |
transDateToCustomer(Date date,
String pattern)
将服务器的时间转换成客户端的时间
|
public static Date getFirstDayInWeek(Date date, Locale locale)
date
- locale
- public static Date getFirstDayInWeek(Date date)
date
- public static Date getFirstDayInWeek0(Date date)
date
- public static Date getLastDayInWeek(Date date, Locale locale)
date
- public static Date getLastDayInWeek(Date date)
date
- locale
- public static Date getLastDayInWeek0(Date date)
date
- locale
- public static Date getFirstDayInMonth(Date date, Locale locale)
date
- public static Date getFirstDayInMonth(Date date)
date
- public static Date getFirstDayInMonth0(Date date)
date
- public static Date getLastDayInMonth(Date date)
date
- public static Date getLastDayInMonth0(Date date)
date
- public static Date getFirstDayInSeason(Date date)
date
- public static Date getFirstDayInSeason0(Date date)
date
- public static Date getLastDayInSeason(Date date)
date
- public static Date getLastDayInSeason0(Date date)
date
- public static Date getFirstDayInYear(Date date)
date
- public static Date getFirstDayInYear0(Date date)
date
- public static Date getLastDayInYear(Date date)
date
- public static Date getLastDayInYear0(Date date)
date
- public static Date getTodayFirstTime()
public static Date getTodayFirstTimeNoTimeZone()
public static Date getTodayFirstTime(Date date)
date
- public static Date getTodayFirstTime(String dateStr)
dateStr
- yyyy-MM-ddpublic static String getFirstTimeStr(String dateStr)
dateStr
- yyyy-MM-ddpublic static String getServiceFirstTime(String date)
date
- public static String getServiceLastTime(String date)
date
- public static Date getTodayLastTime()
public static Date getTodayLastTimeNoTimeZone()
public static Date getTodayLastTime(Date date)
date
- public static Date getTodayLastTime(String dateStr)
dateStr
- yyyy-MM-ddpublic static String getLastTimeStr(String dateStr)
dateStr
- yyyy-MM-ddpublic static String formatDatetime(Date datetime)
datetime
- public static String formatDatetime(Date datetime, TimeZone timezone)
datetime
- timezone
- public static String formatDatetimeWithoutSecond(Date datetime)
datetime
- public static String formatDate(Date date)
date
- public static String format(Date date, String pattern)
date
- pattern
- public static String formatDate(Date date, Locale locale)
date
- public static String format(Date date, Locale locale)
date
- pattern
- locale
- public static String format(Date date, String pattern, Locale locale)
date
- pattern
- locale
- public static String format(Date date, String pattern, TimeZone timeZone)
date
- pattern
- zone
- public static String format(Date date, String pattern, TimeZone zone, Locale locale)
date
- pattern
- zone
- locale
- public static String formatDateOrDatetime(Date date)
date
- public static Date parseDatetime(String datetime)
datetime
- 格式为yyyy-MM-dd HH:mm:sspublic static Date parseDate(String date)
date
- 格式为yyyy-MM-ddpublic static Date parseDatetimeWithoutSecond(String date)
date
- 格式为yyyy-MM-dd HH:mmpublic static Date parse(String dateStr)
dateStr
- public static Date parse(String dateStr, TimeZone timeZone)
TimeZone.getDefault()
支持三种格式:yyyy-MM-dd HH:mm,yyyy-MM-dd,yyyy-MM-dd HH:mm:ssdateStr
- timeZone
- public static Date parse(String dateStr, String pattern)
dateStr
- pattern
- public static Date parse(String dateStr, TimeZone timeZone, String pattern)
dateStr
- pattern
- 格式,如yy-MM-dd HH:mm:ss,可以不设定,默认三种格式:yyyy-MM-dd HH:mm,yyyy-MM-dd,yyyy-MM-dd HH:mm:sspublic static Date parseNoTimeZone(String dateStr, String pattern)
dateStr
- pattern
- 格式,如yy-MM-dd HH:mm:ss,可以不设定,默认三种格式:yyyy-MM-dd HH:mm,yyyy-MM-dd,yyyy-MM-dd HH:mm:sspublic static Date addSecond(Date date, int amount)
date
- amount
- 移动秒数,负数表示往回倒public static Date addMinute(Date date, int amount)
date
- amount
- 移动分数,负数表示往回倒public static Date addHour(Date date, int amount)
date
- amount
- 移动小时数,负数表示往回倒public static Date addDate(Date date, int amount)
Datetimes.addDate(new Date(), -1) = 昨天 Datetimes.addDate(new Date(), 1) = 明天
date
- amount
- 移动天数,负数表示往回倒public static Date addMonth(Date date, int amount)
date
- amount
- 移动月数,负数表示往回倒public static Date addYear(Date date, int amount)
date
- amount
- 移动年数,负数表示往回倒public static boolean between(Date checkupDate, Date startDate, Date endDate, boolean isIncludeBorderline)
Datetimes.between(new Date(107, 8, 8), new Date(107, 1, 1), new Date(107, 12, 31), true) : true Datetimes.between(new Date(107, 1, 1), new Date(107, 1, 1), new Date(107, 12, 31), true) : true Datetimes.between(new Date(107, 1, 1), new Date(107, 1, 1), new Date(107, 12, 31), false) : false
checkupDate
- 要检查的时间点startDate
- 时间段的开始时间endDate
- 时间段的结束时间isIncludeBorderline
- 检测时是否包含边界时间,true:表示被检测的时间点可以等于时间段的起止时间点public static boolean checkOverup(Date startDate1, Date endDate1, Date startDate2, Date endDate2, boolean allowIncludeBorderline)
Datetimes.checkOverup(new Date(107, 1, 1), new Date(107, 12, 31), new Date(107, 12, 31), new Date(108, 12, 31), true) : false Datetimes.checkOverup(new Date(107, 1, 1), new Date(107, 12, 31), new Date(107, 12, 31), new Date(108, 12, 31), false) : true Datetimes.checkOverup(new Date(107, 1, 1), new Date(107, 12, 31), new Date(108, 1, 1), new Date(108, 12, 31), false) : false
startDate1
- 时间段1的开始时间endDate1
- 时间段1的结束时间startDate2
- 时间段2的开始时间endDate2
- 时间段2的结束时间allowIncludeBorderline
- 检测时是否允许边界时间重叠,true:时间段1的结束时间可以等于时间段2的开始时间public static Date getNextPeriodMinute(Date date, int period, boolean clearSecond)
Datetimes.getNextPeriodMinute(new Date(), 30, true) 若当前是:2007-06-23 12:18:25 返回值 2007-06-23 12:30:00 若当前是:2007-06-23 12:30:25 返回值 2007-06-23 13:00:00 Datetimes.getNextPeriodMinute(new Date(), 10, true) 若当前是:2007-06-23 12:18:25 返回值 2007-06-23 12:20:00 若当前是:2007-06-23 12:50:25 返回值 2007-06-23 13:00:00
date
- period
- 时间间隔,如15、30,用于将一个小时却分乘若干段clearSecond
- 是否将秒清0public static Date conversionToServerDate(Date localDate, TimeZone localZone)
服务器在GMT+08:00 东8区 conversionToServerDate(Date(2007-06-29 17:20:27), TimeZone.getTimeZone("GMT+09:00")) : 2007-06-29 16:20:27 conversionToServerDate(Date(2007-06-29 17:20:27), TimeZone.getTimeZone("GMT+00:00")) : 2007-06-30 01:20:27
localDate
- 地方时间localZone
- 客户端所在的时区public static String formateToLocaleDatetime(Date date)
date
- public static String formateToLocaleDate(Date date)
date
- public static long minusDay(Date theDay, Date otherDay)
theDay
- 时间1otherDay
- 时间2public static long[] detailInterval(Date theDay, Date otherDay)
theDay
- 时间1otherDay
- 时间2public static long[] formatLongToTimeStr(long millisecond)
long
- 分钟数public static String formatMins2TimeStr(Integer times)
times
- public static Date transDateToCustomer(Date date, String pattern)
date
- pattern
- public static String formatDateStr(String dateStr, String pattern)
date
- pattern
- public static void main(String[] args)
Copyright © 2016–2017. All rights reserved.