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 - 日