mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add methods
This commit is contained in:
parent
8d750b0017
commit
f5202f36b8
@ -13,6 +13,7 @@
|
|||||||
package org.dromara.hutool.core.date;
|
package org.dromara.hutool.core.date;
|
||||||
|
|
||||||
import org.dromara.hutool.core.comparator.CompareUtil;
|
import org.dromara.hutool.core.comparator.CompareUtil;
|
||||||
|
import org.dromara.hutool.core.lang.Assert;
|
||||||
import org.dromara.hutool.core.math.ChineseNumberFormatter;
|
import org.dromara.hutool.core.math.ChineseNumberFormatter;
|
||||||
import org.dromara.hutool.core.date.format.GlobalCustomFormat;
|
import org.dromara.hutool.core.date.format.GlobalCustomFormat;
|
||||||
import org.dromara.hutool.core.date.format.parser.DateParser;
|
import org.dromara.hutool.core.date.format.parser.DateParser;
|
||||||
@ -577,6 +578,20 @@ public class CalendarUtil {
|
|||||||
return calendar.getActualMaximum(dateField);
|
return calendar.getActualMaximum(dateField);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得日期的某个部分<br>
|
||||||
|
* 例如获得年的部分,则使用 getField(DatePart.YEAR)
|
||||||
|
*
|
||||||
|
* @param calendar {@link Calendar}
|
||||||
|
* @param field 表示日期的哪个部分的枚举 {@link DateField}
|
||||||
|
* @return 某个部分的值
|
||||||
|
* @since 6.0.0
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("MagicConstant")
|
||||||
|
public static int getField(final Calendar calendar, final DateField field) {
|
||||||
|
return Assert.notNull(calendar).get(Assert.notNull(field).getValue());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calendar{@link Instant}对象
|
* Calendar{@link Instant}对象
|
||||||
*
|
*
|
||||||
@ -596,6 +611,9 @@ public class CalendarUtil {
|
|||||||
* @since 5.0.5
|
* @since 5.0.5
|
||||||
*/
|
*/
|
||||||
public static LocalDateTime toLocalDateTime(final Calendar calendar) {
|
public static LocalDateTime toLocalDateTime(final Calendar calendar) {
|
||||||
|
if(null == calendar){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId());
|
return LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ import java.util.Calendar;
|
|||||||
* 与Calendar相应值对应
|
* 与Calendar相应值对应
|
||||||
*
|
*
|
||||||
* @author Looly
|
* @author Looly
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public enum DateField {
|
public enum DateField {
|
||||||
|
|
||||||
@ -121,6 +120,11 @@ public enum DateField {
|
|||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取{@link Calendar}中对应的值
|
||||||
|
*
|
||||||
|
* @return {@link Calendar}中对应的值
|
||||||
|
*/
|
||||||
public int getValue() {
|
public int getValue() {
|
||||||
return this.value;
|
return this.value;
|
||||||
}
|
}
|
||||||
@ -133,38 +137,38 @@ public enum DateField {
|
|||||||
*/
|
*/
|
||||||
public static DateField of(final int calendarPartIntValue) {
|
public static DateField of(final int calendarPartIntValue) {
|
||||||
switch (calendarPartIntValue) {
|
switch (calendarPartIntValue) {
|
||||||
case Calendar.ERA:
|
case Calendar.ERA:
|
||||||
return ERA;
|
return ERA;
|
||||||
case Calendar.YEAR:
|
case Calendar.YEAR:
|
||||||
return YEAR;
|
return YEAR;
|
||||||
case Calendar.MONTH:
|
case Calendar.MONTH:
|
||||||
return MONTH;
|
return MONTH;
|
||||||
case Calendar.WEEK_OF_YEAR:
|
case Calendar.WEEK_OF_YEAR:
|
||||||
return WEEK_OF_YEAR;
|
return WEEK_OF_YEAR;
|
||||||
case Calendar.WEEK_OF_MONTH:
|
case Calendar.WEEK_OF_MONTH:
|
||||||
return WEEK_OF_MONTH;
|
return WEEK_OF_MONTH;
|
||||||
case Calendar.DAY_OF_MONTH:
|
case Calendar.DAY_OF_MONTH:
|
||||||
return DAY_OF_MONTH;
|
return DAY_OF_MONTH;
|
||||||
case Calendar.DAY_OF_YEAR:
|
case Calendar.DAY_OF_YEAR:
|
||||||
return DAY_OF_YEAR;
|
return DAY_OF_YEAR;
|
||||||
case Calendar.DAY_OF_WEEK:
|
case Calendar.DAY_OF_WEEK:
|
||||||
return DAY_OF_WEEK;
|
return DAY_OF_WEEK;
|
||||||
case Calendar.DAY_OF_WEEK_IN_MONTH:
|
case Calendar.DAY_OF_WEEK_IN_MONTH:
|
||||||
return DAY_OF_WEEK_IN_MONTH;
|
return DAY_OF_WEEK_IN_MONTH;
|
||||||
case Calendar.AM_PM:
|
case Calendar.AM_PM:
|
||||||
return AM_PM;
|
return AM_PM;
|
||||||
case Calendar.HOUR:
|
case Calendar.HOUR:
|
||||||
return HOUR;
|
return HOUR;
|
||||||
case Calendar.HOUR_OF_DAY:
|
case Calendar.HOUR_OF_DAY:
|
||||||
return HOUR_OF_DAY;
|
return HOUR_OF_DAY;
|
||||||
case Calendar.MINUTE:
|
case Calendar.MINUTE:
|
||||||
return MINUTE;
|
return MINUTE;
|
||||||
case Calendar.SECOND:
|
case Calendar.SECOND:
|
||||||
return SECOND;
|
return SECOND;
|
||||||
case Calendar.MILLISECOND:
|
case Calendar.MILLISECOND:
|
||||||
return MILLISECOND;
|
return MILLISECOND;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,9 +59,9 @@ class PatternUtil {
|
|||||||
final int minute = calendar.get(Calendar.MINUTE);
|
final int minute = calendar.get(Calendar.MINUTE);
|
||||||
final int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
final int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||||
final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
||||||
final int month = calendar.get(Calendar.MONTH) + 1;// 月份从1开始
|
final int monthBase1 = calendar.get(Calendar.MONTH) + 1;// 月份从1开始
|
||||||
final int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期从0开始,0和7都表示周日
|
final int dayOfWeekBase0 = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期从0开始,0和7都表示周日
|
||||||
final int year = calendar.get(Calendar.YEAR);
|
final int year = calendar.get(Calendar.YEAR);
|
||||||
return new int[]{second, minute, hour, dayOfMonth, month, dayOfWeek, year};
|
return new int[]{second, minute, hour, dayOfMonth, monthBase1, dayOfWeekBase0, year};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ package org.dromara.hutool.cron.pattern;
|
|||||||
|
|
||||||
import org.dromara.hutool.core.date.DateTime;
|
import org.dromara.hutool.core.date.DateTime;
|
||||||
import org.dromara.hutool.core.date.DateUtil;
|
import org.dromara.hutool.core.date.DateUtil;
|
||||||
|
import org.dromara.hutool.core.lang.Console;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@ -28,6 +29,6 @@ public class IssueI92H5HTest {
|
|||||||
final CronPattern pattern = new CronPattern("0 0 0 L 2 ?");
|
final CronPattern pattern = new CronPattern("0 0 0 L 2 ?");
|
||||||
//noinspection ConstantConditions
|
//noinspection ConstantConditions
|
||||||
final Calendar calendar = pattern.nextMatchAfter(date.toCalendar());
|
final Calendar calendar = pattern.nextMatchAfter(date.toCalendar());
|
||||||
System.out.println(DateUtil.date(calendar));
|
Console.log(DateUtil.date(calendar));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user