public class DateTime2 extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
static DateTimeFormatter |
DEFAULT_DATE_FORMATTER
yyyy-MM-dd
|
static DateTimeFormatter |
DEFAULT_DATETIME_FORMATTER
yyyy-MM-dd HH:mm:ss
|
static String |
DEFAULT_FORMATTER |
private static long |
LARGE_DATE_MILLS |
private static int |
MAX_DAY_MONTH |
private static int |
MAX_DAY_YEAR |
static DateTimeFormatter |
SHORT_DATE_FORMATTER
yyyy-M-d
|
static DateTimeFormatter |
SLASH_DATE_FORMATTER
yyyy/MM/dd
|
private static long |
SMALL_DATE_MILLS |
(专用程序包) static List<DateTimeFormatter> |
yearMonthFormatters |
| 构造器和说明 |
|---|
DateTime2() |
| 限定符和类型 | 方法和说明 |
|---|---|
private static long |
_parseFastDatetime(String text)
解析合法的时间,失败返回 -1
|
static int |
calNatureDay(Calendar c1,
Calendar c2)
计算两个日期相差几个自然天,例如:2014-12-31 20:00 至 2015-01-01 07:00 相差-1天
|
static int |
calNatureDay(LocalDateTime t1,
LocalDateTime t2)
计算两个日期相差几个自然天,例如:2014-12-31 20:00 至 2015-01-01 07:00 相差-1天
|
static int |
calNatureDay(long t1,
long t2)
计算两个日期相差几个自然天,例如:2014-12-31 20:00 至 2015-01-01 07:00 相差-1天
|
static String |
dateToString(Date src,
String pattern) |
static String |
dateToString(Date src,
String pattern,
String defaultValue) |
static String |
getDayAgo(String dateStr,
int days,
String fmt)
获得日期 n 天以前
|
static Date |
getDaysStart(int days)
获取与今天相比之前或者之后的某天的开始时间 正数为之后,负数为之前
|
static Date |
getDayStart(Date date)
获取某一天的开始时间 ex:2017-11-12 03:04:05 return 2017-11-12 00:00:00
|
static Date |
getGoodSendDateTime(Date date,
int expectHour) |
static String |
longToInterval(long l) |
static String |
now()
现在时间,格式:yyyy-MM-dd HH:mm:ss
|
static String |
now(String pattern)
现在时间
|
static LocalDateTime |
parse(String source)
解析日期时间格式
|
static Date |
stringToDate(String src,
String pattern) |
static Date |
stringToDate(String src,
String pattern,
Date defaultDate) |
static String |
toChineseString(Duration d)
格式化时长,以下输出:3时, 3时1分2秒, 3时2分
|
static String |
toChineseString(Duration d,
boolean keepSecond)
格式化时长,以下输出:3时, 3时1分2秒, 3时2分
|
static Date |
toDate(LocalDate t)
转换日期格式
|
static Date |
toDate(LocalDate t,
Date defaultIfNull)
转换日期格式
|
static Date |
toDate(LocalDateTime t)
转换日期格式
|
static Date |
toDate(LocalDateTime t,
Date defaultIfNull)
转换日期格式
|
static int |
toDayWithMax(LocalDate now)
特殊用法,获取某天在一年中的位置(固定从1开始,每个月31天),例如1月1日=1,1月31日=31,2月31日=62等等
|
static LocalDate |
toLocalDate(Date date)
convert date to LocalDate
|
static LocalDate |
toLocalDate(LocalDate now,
int x)
将day(1~12*31~24*31)范围内的day转换成LocalDate
LocalDate now = LocalDate.of(2016, 10, 13);
assertEquals(LocalDate.of(2016, 1, 1), DateTime2.toLocalDate(now, 1));//1-1
assertEquals(LocalDate.of(2016, 1, 31), DateTime2.toLocalDate(now, 31));//1-31
assertEquals(LocalDate.of(2016, 2, 1), DateTime2.toLocalDate(now, 31+1));//2-1
assertEquals(LocalDate.of(2016, 2, 29), DateTime2.toLocalDate(now, 31+29));//2-29
assertNull(DateTime2.toLocalDate(now, 31+30));//2-30
assertNull(DateTime2.toLocalDate(now, 31+31));//2-31
assertEquals(LocalDate.of(2016, 12, 31), DateTime2.toLocalDate(now, 372));
assertEquals(LocalDate.of(2017, 1, 1), DateTime2.toLocalDate(now, 372+1));
assertEquals(LocalDate.of(2017, 1, 31), DateTime2.toLocalDate(now, 372+31));
assertEquals(LocalDate.of(2017, 2, 28), DateTime2.toLocalDate(now, 372+31+28));
assertNull(DateTime2.toLocalDate(now, 372+31+29));//2017-2-29 无效,非闰年
assertNull(DateTime2.toLocalDate(now, 372+31+31));//2017-2-31 无效
|
static LocalDate |
toLocalDate(long epochMilli)
convert milli seconds to LocalDate
|
static LocalDate |
toLocalDate(String text)
convert string to LocalDate
2016-05-10
2016-5-10
2016/06/10
1462843919831
1462843919
|
static LocalDate |
toLocalDate(String text,
LocalDate defaultValue)
convert string to LocalDate
|
static LocalDateTime |
toLocalDateTime(Date date)
convert date to LocalDateTime
|
static LocalDateTime |
toLocalDateTime(long epochMilli)
convert milli seconds to LocalDateTime
|
static LocalDateTime |
toLocalDateTime(String text)
将字符串转换为日期时间 yyyy-MM-dd HH:mm:ss 和 yyyy-MM-ddTHH:mm:ss
yyyy-MM-dd HH:mm:ss
yyyy-MM-ddTHH:mm:ss
1462843919831
1462843919
|
static long |
toMillis(LocalDate t)
convert LocalDate to milli seconds
|
static long |
toMillis(LocalDateTime t)
convert LocalDateTime to milli seconds
|
static int |
toMinute(LocalTime time)
将时间转换成分钟,范围 0-1439之间。
|
static String |
toString(Date t)
格式化输出 "yyyy-MM-dd HH:mm:ss"
|
static String |
toString(DayOfWeek dow,
String prefix)
格式化星期,输出 "星期五" 或者 "周五"
|
static String |
toString(LocalDate t)
格式化输出 "yyyy-MM-dd"
|
static String |
toString(LocalDateTime t)
格式化输出 "yyyy-MM-dd HH:mm:ss"
|
static String |
toString(long t)
格式化输出 "yyyy-MM-dd HH:mm:ss"
|
static List<Tuple<LocalDate,LocalDate>> |
toTuples(Iterable<LocalDate> dates)
将多个排好序的dates连接起来
例如
2016-10-13,2016-12-30,2016-12-31,2017-01-01,2017-02-01
转换成
[2016-10-13~2016-10-13, 2016-12-30~2017-01-01, 2017-02-01~2017-02-01]
|
static YearMonth |
toYearMonth(String text,
YearMonth defaultValue)
解析 YearMonth('yyyy-MM', 'yyyyMM'),例如 2017-01 或者 201701
|
public static final DateTimeFormatter DEFAULT_DATETIME_FORMATTER
public static final DateTimeFormatter DEFAULT_DATE_FORMATTER
public static final DateTimeFormatter SHORT_DATE_FORMATTER
public static final DateTimeFormatter SLASH_DATE_FORMATTER
private static final long SMALL_DATE_MILLS
private static final long LARGE_DATE_MILLS
static List<DateTimeFormatter> yearMonthFormatters
private static final int MAX_DAY_MONTH
private static final int MAX_DAY_YEAR
public static String now()
public static LocalDateTime parse(String source)
source - 字符串日期,支持 yyyy-MM-dd HH:mm:ss 和 yyyy-MM-ddTHH:mm:ss(首选)NullPointerException - 如果source为空DateTimeParseException - if the text cannot be parsedtoLocalDateTime(String)public static String toString(LocalDateTime t)
public static String toString(long t)
public static String toChineseString(Duration d, boolean keepSecond)
public static String longToInterval(long l)
public static Date getDaysStart(int days)
days - public static Date getDayStart(Date date)
date - public static int calNatureDay(Calendar c1, Calendar c2)
c1 - 第一个日期(大)c2 - 第二个日期(小)public static int calNatureDay(long t1,
long t2)
t1 - 第一个日期(大),毫秒或者unix秒t2 - 第二个日期(小),毫秒或者unix秒public static int calNatureDay(LocalDateTime t1, LocalDateTime t2)
t1 - 第一个日期(大)t2 - 第二个日期(小)public static long toMillis(LocalDateTime t)
t - LocalDateTimepublic static long toMillis(LocalDate t)
t - LocalDatepublic static LocalDateTime toLocalDateTime(long epochMilli)
epochMilli - milli secondspublic static LocalDateTime toLocalDateTime(Date date)
date - old date formatpublic static LocalDateTime toLocalDateTime(String text)
text - 字符串格式public static LocalDate toLocalDate(long epochMilli)
epochMilli - milli secondspublic static LocalDate toLocalDate(Date date)
date - old date formatpublic static int toMinute(LocalTime time)
public static LocalDate toLocalDate(String text)
text - string format, both support yyyy-MM-dd, yyyy-M-d, unix seconds, unix millisecondspublic static LocalDate toLocalDate(String text, LocalDate defaultValue)
toLocalDate(String)public static YearMonth toYearMonth(String text, YearMonth defaultValue)
text - 文本defaultValue - 解析失败,返回默认值private static long _parseFastDatetime(String text)
public static LocalDate toLocalDate(LocalDate now, int x)
LocalDate now = LocalDate.of(2016, 10, 13);
assertEquals(LocalDate.of(2016, 1, 1), DateTime2.toLocalDate(now, 1));//1-1
assertEquals(LocalDate.of(2016, 1, 31), DateTime2.toLocalDate(now, 31));//1-31
assertEquals(LocalDate.of(2016, 2, 1), DateTime2.toLocalDate(now, 31+1));//2-1
assertEquals(LocalDate.of(2016, 2, 29), DateTime2.toLocalDate(now, 31+29));//2-29
assertNull(DateTime2.toLocalDate(now, 31+30));//2-30
assertNull(DateTime2.toLocalDate(now, 31+31));//2-31
assertEquals(LocalDate.of(2016, 12, 31), DateTime2.toLocalDate(now, 372));
assertEquals(LocalDate.of(2017, 1, 1), DateTime2.toLocalDate(now, 372+1));
assertEquals(LocalDate.of(2017, 1, 31), DateTime2.toLocalDate(now, 372+31));
assertEquals(LocalDate.of(2017, 2, 28), DateTime2.toLocalDate(now, 372+31+28));
assertNull(DateTime2.toLocalDate(now, 372+31+29));//2017-2-29 无效,非闰年
assertNull(DateTime2.toLocalDate(now, 372+31+31));//2017-2-31 无效
now - 以某个时间段为参考点(若x对应的 month和day 在此之前则认为是来年,year+1。例如今天是2016-10-13,若x对应09-30则返回2017-09-30)x - 1~743范围内整数public static int toDayWithMax(LocalDate now)
now - 具体日期public static List<Tuple<LocalDate,LocalDate>> toTuples(Iterable<LocalDate> dates)
例如
2016-10-13,2016-12-30,2016-12-31,2017-01-01,2017-02-01
转换成
[2016-10-13~2016-10-13, 2016-12-30~2017-01-01, 2017-02-01~2017-02-01]
dates - 排好序的间断日期public static String getDayAgo(String dateStr, int days, String fmt)
dateStr - days - fmt - public static Date toDate(LocalDateTime t, Date defaultIfNull)
t - 日期时间defaultIfNull - 如果t为null时的默认值toLocalDateTime(Date)public static Date toDate(LocalDate t, Date defaultIfNull)
t - 日期defaultIfNull - 如果t为null时的默认值toLocalDate(Date)public static Date toDate(LocalDate t)
t - 日期toDate(LocalDate, Date)public static Date toDate(LocalDateTime t)
t - 日期时间toDate(LocalDateTime, Date)Copyright © 2020. All rights reserved.