public class TimeUtils
extends java.lang.Object
author: Blankj blog : http://blankj.com time : 2016/8/2 desc : 时间相关工具类
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_PATTERN
在工具类中经常使用到工具类的格式化描述,这个主要是一个日期的操作类,所以日志格式主要使用 SimpleDateFormat的定义格式.
|
Modifier and Type | Method and Description |
---|---|
static long |
date2Millis(java.util.Date date)
将Date类型转为时间戳
|
static java.lang.String |
date2String(java.util.Date date)
将Date类型转为时间字符串
|
static java.lang.String |
date2String(java.util.Date date,
java.lang.String pattern)
将Date类型转为时间字符串
|
static java.lang.String |
getChineseZodiac(java.util.Date date)
获取生肖
|
static java.lang.String |
getChineseZodiac(int year)
获取生肖
|
static java.lang.String |
getChineseZodiac(long millis)
获取生肖
|
static java.lang.String |
getChineseZodiac(java.lang.String time)
获取生肖
|
static java.lang.String |
getChineseZodiac(java.lang.String time,
java.lang.String pattern)
获取生肖
|
static java.lang.String |
getFitTimeSpan(java.util.Date date0,
java.util.Date date1,
int precision)
获取合适型两个时间差
|
static java.lang.String |
getFitTimeSpan(long millis0,
long millis1,
int precision)
获取合适型两个时间差
|
static java.lang.String |
getFitTimeSpan(java.lang.String time0,
java.lang.String time1,
int precision)
获取合适型两个时间差
|
static java.lang.String |
getFitTimeSpan(java.lang.String time0,
java.lang.String time1,
int precision,
java.lang.String pattern)
获取合适型两个时间差
|
static java.lang.String |
getFitTimeSpanByNow(java.util.Date date,
int precision)
获取合适型与当前时间的差
|
static java.lang.String |
getFitTimeSpanByNow(long millis,
int precision)
获取合适型与当前时间的差
|
static java.lang.String |
getFitTimeSpanByNow(java.lang.String time,
int precision)
获取合适型与当前时间的差
|
static java.lang.String |
getFitTimeSpanByNow(java.lang.String time,
int precision,
java.lang.String pattern)
获取合适型与当前时间的差
|
static java.lang.String |
getFriendlyTimeSpanByNow(java.util.Date date)
获取友好型与当前时间的差
|
static java.lang.String |
getFriendlyTimeSpanByNow(long millis)
获取友好型与当前时间的差
|
static java.lang.String |
getFriendlyTimeSpanByNow(java.lang.String time)
获取友好型与当前时间的差
|
static java.lang.String |
getFriendlyTimeSpanByNow(java.lang.String time,
java.lang.String pattern)
获取友好型与当前时间的差
|
static java.util.Date |
getNowTimeDate()
获取当前Date
|
static long |
getNowTimeMills()
获取当前毫秒时间戳
|
static java.lang.String |
getNowTimeString()
获取当前时间字符串
|
static java.lang.String |
getNowTimeString(java.lang.String pattern)
获取当前时间字符串
|
static long |
getTimeSpan(java.util.Date date0,
java.util.Date date1,
ConstUtils.TimeUnit unit)
获取两个时间差(单位:unit)
|
static long |
getTimeSpan(long millis0,
long millis1,
ConstUtils.TimeUnit unit)
获取两个时间差(单位:unit)
|
static long |
getTimeSpan(java.lang.String time0,
java.lang.String time1,
ConstUtils.TimeUnit unit)
获取两个时间差(单位:unit)
|
static long |
getTimeSpan(java.lang.String time0,
java.lang.String time1,
ConstUtils.TimeUnit unit,
java.lang.String pattern)
获取两个时间差(单位:unit)
|
static long |
getTimeSpanByNow(java.util.Date date,
ConstUtils.TimeUnit unit)
获取与当前时间的差(单位:unit)
|
static long |
getTimeSpanByNow(long millis,
ConstUtils.TimeUnit unit)
获取与当前时间的差(单位:unit)
|
static long |
getTimeSpanByNow(java.lang.String time,
ConstUtils.TimeUnit unit)
获取与当前时间的差(单位:unit)
|
static long |
getTimeSpanByNow(java.lang.String time,
ConstUtils.TimeUnit unit,
java.lang.String pattern)
获取与当前时间的差(单位:unit)
|
static java.lang.String |
getWeek(java.util.Date date)
获取星期
|
static java.lang.String |
getWeek(long millis)
获取星期
|
static java.lang.String |
getWeek(java.lang.String time)
获取星期
|
static java.lang.String |
getWeek(java.lang.String time,
java.lang.String pattern)
获取星期
|
static int |
getWeekIndex(java.util.Date date)
获取星期
|
static int |
getWeekIndex(long millis)
获取星期
|
static int |
getWeekIndex(java.lang.String time)
获取星期
|
static int |
getWeekIndex(java.lang.String time,
java.lang.String pattern)
获取星期
|
static int |
getWeekOfMonth(java.util.Date date)
获取月份中的第几周
|
static int |
getWeekOfMonth(long millis)
获取月份中的第几周
|
static int |
getWeekOfMonth(java.lang.String time)
获取月份中的第几周
|
static int |
getWeekOfMonth(java.lang.String time,
java.lang.String pattern)
获取月份中的第几周
|
static int |
getWeekOfYear(java.util.Date date)
获取年份中的第几周
|
static int |
getWeekOfYear(long millis)
获取年份中的第几周
|
static int |
getWeekOfYear(java.lang.String time)
获取年份中的第几周
|
static int |
getWeekOfYear(java.lang.String time,
java.lang.String pattern)
获取年份中的第几周
|
static java.lang.String |
getZodiac(java.util.Date date)
获取星座
|
static java.lang.String |
getZodiac(int month,
int day)
获取星座
|
static java.lang.String |
getZodiac(long millis)
获取星座
|
static java.lang.String |
getZodiac(java.lang.String time)
获取星座
|
static java.lang.String |
getZodiac(java.lang.String time,
java.lang.String pattern)
获取星座
|
static boolean |
isLeapYear(java.util.Date date)
判断是否闰年
|
static boolean |
isLeapYear(int year)
判断是否闰年
|
static boolean |
isLeapYear(long millis)
判断是否闰年
|
static boolean |
isLeapYear(java.lang.String time)
判断是否闰年
|
static boolean |
isLeapYear(java.lang.String time,
java.lang.String pattern)
判断是否闰年
|
static boolean |
isSameDay(java.util.Date date)
判断是否同一天
|
static boolean |
isSameDay(long millis)
判断是否同一天
|
static boolean |
isSameDay(java.lang.String time)
判断是否同一天
|
static boolean |
isSameDay(java.lang.String time,
java.lang.String pattern)
判断是否同一天
|
static java.util.Date |
millis2Date(long millis)
将时间戳转为Date类型
|
static java.lang.String |
millis2String(long millis)
将时间戳转为时间字符串
|
static java.lang.String |
millis2String(long millis,
java.lang.String pattern)
将时间戳转为时间字符串
|
static java.util.Date |
string2Date(java.lang.String time)
将时间字符串转为Date类型
|
static java.util.Date |
string2Date(java.lang.String time,
java.lang.String pattern)
将时间字符串转为Date类型
|
static long |
string2Millis(java.lang.String time)
将时间字符串转为时间戳
|
static long |
string2Millis(java.lang.String time,
java.lang.String pattern)
将时间字符串转为时间戳
|
public static final java.lang.String DEFAULT_PATTERN
在工具类中经常使用到工具类的格式化描述,这个主要是一个日期的操作类,所以日志格式主要使用 SimpleDateFormat的定义格式.
格式的意义如下: 日期和时间模式日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在分析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G |
Era 标志符 | Text | AD |
y |
年 | Year | 1996 ; 96 |
M |
年中的月份 | Month | July ; Jul ; 07 |
w |
年中的周数 | Number | 27 |
W |
月份中的周数 | Number | 2 |
D |
年中的天数 | Number | 189 |
d |
月份中的天数 | Number | 10 |
F |
月份中的星期 | Number | 2 |
E |
星期中的天数 | Text | Tuesday ; Tue |
a |
Am/pm 标记 | Text | PM |
H |
一天中的小时数(0-23) | Number | 0 |
k |
一天中的小时数(1-24) | Number | 24 |
K |
am/pm 中的小时数(0-11) | Number | 0 |
h |
am/pm 中的小时数(1-12) | Number | 12 |
m |
小时中的分钟数 | Number | 30 |
s |
分钟中的秒数 | Number | 55 |
S |
毫秒数 | Number | 978 |
z |
时区 | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
时区 | RFC 822 time zone | -0800 |
HH:mm 15:44 h:mm a 3:44 下午 HH:mm z 15:44 CST HH:mm Z 15:44 +0800 HH:mm zzzz 15:44 中国标准时间 HH:mm:ss 15:44:40 yyyy-MM-dd 2016-08-12 yyyy-MM-dd HH:mm 2016-08-12 15:44 yyyy-MM-dd HH:mm:ss 2016-08-12 15:44:40 yyyy-MM-dd HH:mm:ss zzzz 2016-08-12 15:44:40 中国标准时间 EEEE yyyy-MM-dd HH:mm:ss zzzz 星期五 2016-08-12 15:44:40 中国标准时间 yyyy-MM-dd HH:mm:ss.SSSZ 2016-08-12 15:44:40.461+0800 yyyy-MM-dd'T'HH:mm:ss.SSSZ 2016-08-12T15:44:40.461+0800 yyyy.MM.dd G 'at' HH:mm:ss z 2016.08.12 公元 at 15:44:40 CST K:mm a 3:44 下午 EEE, MMM d, ''yy 星期五, 八月 12, '16 hh 'o''clock' a, zzzz 03 o'clock 下午, 中国标准时间 yyyyy.MMMMM.dd GGG hh:mm aaa 02016.八月.12 公元 03:44 下午 EEE, d MMM yyyy HH:mm:ss Z 星期五, 12 八月 2016 15:44:40 +0800 yyMMddHHmmssZ 160812154440+0800 yyyy-MM-dd'T'HH:mm:ss.SSSZ 2016-08-12T15:44:40.461+0800 EEEE 'DATE('yyyy-MM-dd')' 'TIME('HH:mm:ss')' zzzz 星期五 DATE(2016-08-12) TIME(15:44:40) 中国标准时间注意:SimpleDateFormat不是线程安全的,线程安全需用
ThreadLocal<SimpleDateFormat>
public static java.lang.String millis2String(long millis)
格式为yyyy-MM-dd HH:mm:ss
millis
- 毫秒时间戳public static java.lang.String millis2String(long millis, java.lang.String pattern)
格式为pattern
millis
- 毫秒时间戳pattern
- 时间格式public static long string2Millis(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static long string2Millis(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static java.util.Date string2Date(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static java.util.Date string2Date(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static java.lang.String date2String(java.util.Date date)
格式为yyyy-MM-dd HH:mm:ss
date
- Date类型时间public static java.lang.String date2String(java.util.Date date, java.lang.String pattern)
格式为pattern
date
- Date类型时间pattern
- 时间格式public static long date2Millis(java.util.Date date)
date
- Date类型时间public static java.util.Date millis2Date(long millis)
millis
- 毫秒时间戳public static long getTimeSpan(java.lang.String time0, java.lang.String time1, ConstUtils.TimeUnit unit)
time0和time1格式都为yyyy-MM-dd HH:mm:ss
time0
- 时间字符串0time1
- 时间字符串1unit
- 单位类型
public static long getTimeSpan(java.lang.String time0, java.lang.String time1, ConstUtils.TimeUnit unit, java.lang.String pattern)
time0和time1格式都为format
time0
- 时间字符串0time1
- 时间字符串1unit
- 单位类型
pattern
- 时间格式public static long getTimeSpan(java.util.Date date0, java.util.Date date1, ConstUtils.TimeUnit unit)
date0
- Date类型时间0date1
- Date类型时间1unit
- 单位类型
public static long getTimeSpan(long millis0, long millis1, ConstUtils.TimeUnit unit)
millis0
- 毫秒时间戳0millis1
- 毫秒时间戳1unit
- 单位类型
public static java.lang.String getFitTimeSpan(java.lang.String time0, java.lang.String time1, int precision)
time0和time1格式都为yyyy-MM-dd HH:mm:ss
time0
- 时间字符串0time1
- 时间字符串1precision
- 精度
precision = 0,返回null
precision = 1,返回天
precision = 2,返回天和小时
precision = 3,返回天、小时和分钟
precision = 4,返回天、小时、分钟和秒
precision >= 5,返回天、小时、分钟、秒和毫秒
public static java.lang.String getFitTimeSpan(java.lang.String time0, java.lang.String time1, int precision, java.lang.String pattern)
time0和time1格式都为pattern
time0
- 时间字符串0time1
- 时间字符串1precision
- 精度
precision = 0,返回null
precision = 1,返回天
precision = 2,返回天和小时
precision = 3,返回天、小时和分钟
precision = 4,返回天、小时、分钟和秒
precision >= 5,返回天、小时、分钟、秒和毫秒
pattern
- 时间格式public static java.lang.String getFitTimeSpan(java.util.Date date0, java.util.Date date1, int precision)
date0
- Date类型时间0date1
- Date类型时间1precision
- 精度
precision = 0,返回null
precision = 1,返回天
precision = 2,返回天和小时
precision = 3,返回天、小时和分钟
precision = 4,返回天、小时、分钟和秒
precision >= 5,返回天、小时、分钟、秒和毫秒
public static java.lang.String getFitTimeSpan(long millis0, long millis1, int precision)
millis0
- 毫秒时间戳1millis1
- 毫秒时间戳2precision
- 精度
precision = 0,返回null
precision = 1,返回天
precision = 2,返回天和小时
precision = 3,返回天、小时和分钟
precision = 4,返回天、小时、分钟和秒
precision >= 5,返回天、小时、分钟、秒和毫秒
public static long getNowTimeMills()
public static java.lang.String getNowTimeString()
格式为yyyy-MM-dd HH:mm:ss
public static java.lang.String getNowTimeString(java.lang.String pattern)
格式为pattern
pattern
- 时间格式public static java.util.Date getNowTimeDate()
public static long getTimeSpanByNow(java.lang.String time, ConstUtils.TimeUnit unit)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串unit
- 单位类型
public static long getTimeSpanByNow(java.lang.String time, ConstUtils.TimeUnit unit, java.lang.String pattern)
time格式为pattern
time
- 时间字符串unit
- 单位类型
pattern
- 时间格式public static long getTimeSpanByNow(java.util.Date date, ConstUtils.TimeUnit unit)
date
- Date类型时间unit
- 单位类型
public static long getTimeSpanByNow(long millis, ConstUtils.TimeUnit unit)
millis
- 毫秒时间戳unit
- 单位类型
public static java.lang.String getFitTimeSpanByNow(java.lang.String time, int precision)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串precision
- 精度
public static java.lang.String getFitTimeSpanByNow(java.lang.String time, int precision, java.lang.String pattern)
time格式为pattern
time
- 时间字符串precision
- 精度pattern
- 时间格式
public static java.lang.String getFitTimeSpanByNow(java.util.Date date, int precision)
date
- Date类型时间precision
- 精度
public static java.lang.String getFitTimeSpanByNow(long millis, int precision)
millis
- 毫秒时间戳precision
- 精度
public static java.lang.String getFriendlyTimeSpanByNow(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static java.lang.String getFriendlyTimeSpanByNow(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static java.lang.String getFriendlyTimeSpanByNow(java.util.Date date)
date
- Date类型时间public static java.lang.String getFriendlyTimeSpanByNow(long millis)
millis
- 毫秒时间戳public static boolean isSameDay(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串true
: 是false
: 否public static boolean isSameDay(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式true
: 是false
: 否public static boolean isSameDay(java.util.Date date)
date
- Date类型时间true
: 是false
: 否public static boolean isSameDay(long millis)
millis
- 毫秒时间戳true
: 是false
: 否public static boolean isLeapYear(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串true
: 闰年false
: 平年public static boolean isLeapYear(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式true
: 闰年false
: 平年public static boolean isLeapYear(java.util.Date date)
date
- Date类型时间true
: 闰年false
: 平年public static boolean isLeapYear(long millis)
millis
- 毫秒时间戳true
: 闰年false
: 平年public static boolean isLeapYear(int year)
year
- 年份true
: 闰年false
: 平年public static java.lang.String getWeek(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static java.lang.String getWeek(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static java.lang.String getWeek(java.util.Date date)
date
- Date类型时间public static java.lang.String getWeek(long millis)
millis
- 毫秒时间戳public static int getWeekIndex(java.lang.String time)
注意:周日的Index才是1,周六为7
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static int getWeekIndex(java.lang.String time, java.lang.String pattern)
注意:周日的Index才是1,周六为7
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static int getWeekIndex(java.util.Date date)
注意:周日的Index才是1,周六为7
date
- Date类型时间public static int getWeekIndex(long millis)
注意:周日的Index才是1,周六为7
millis
- 毫秒时间戳public static int getWeekOfMonth(java.lang.String time)
注意:国外周日才是新的一周的开始
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static int getWeekOfMonth(java.lang.String time, java.lang.String pattern)
注意:国外周日才是新的一周的开始
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static int getWeekOfMonth(java.util.Date date)
注意:国外周日才是新的一周的开始
date
- Date类型时间public static int getWeekOfMonth(long millis)
注意:国外周日才是新的一周的开始
millis
- 毫秒时间戳public static int getWeekOfYear(java.lang.String time)
注意:国外周日才是新的一周的开始
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static int getWeekOfYear(java.lang.String time, java.lang.String pattern)
注意:国外周日才是新的一周的开始
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static int getWeekOfYear(java.util.Date date)
注意:国外周日才是新的一周的开始
date
- Date类型时间public static int getWeekOfYear(long millis)
注意:国外周日才是新的一周的开始
millis
- 毫秒时间戳public static java.lang.String getChineseZodiac(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static java.lang.String getChineseZodiac(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static java.lang.String getChineseZodiac(java.util.Date date)
date
- Date类型时间public static java.lang.String getChineseZodiac(long millis)
millis
- 毫秒时间戳public static java.lang.String getChineseZodiac(int year)
year
- 年public static java.lang.String getZodiac(java.lang.String time)
time格式为yyyy-MM-dd HH:mm:ss
time
- 时间字符串public static java.lang.String getZodiac(java.lang.String time, java.lang.String pattern)
time格式为pattern
time
- 时间字符串pattern
- 时间格式public static java.lang.String getZodiac(java.util.Date date)
date
- Date类型时间public static java.lang.String getZodiac(long millis)
millis
- 毫秒时间戳public static java.lang.String getZodiac(int month, int day)
month
- 月day
- 日