mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-24 18:04:54 +08:00
add methods
This commit is contained in:
parent
8d750b0017
commit
f5202f36b8
@ -13,6 +13,7 @@
|
||||
package org.dromara.hutool.core.date;
|
||||
|
||||
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.date.format.GlobalCustomFormat;
|
||||
import org.dromara.hutool.core.date.format.parser.DateParser;
|
||||
@ -577,6 +578,20 @@ public class CalendarUtil {
|
||||
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}对象
|
||||
*
|
||||
@ -596,6 +611,9 @@ public class CalendarUtil {
|
||||
* @since 5.0.5
|
||||
*/
|
||||
public static LocalDateTime toLocalDateTime(final Calendar calendar) {
|
||||
if(null == calendar){
|
||||
return null;
|
||||
}
|
||||
return LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId());
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,6 @@ import java.util.Calendar;
|
||||
* 与Calendar相应值对应
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
public enum DateField {
|
||||
|
||||
@ -121,6 +120,11 @@ public enum DateField {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取{@link Calendar}中对应的值
|
||||
*
|
||||
* @return {@link Calendar}中对应的值
|
||||
*/
|
||||
public int getValue() {
|
||||
return this.value;
|
||||
}
|
||||
@ -133,38 +137,38 @@ public enum DateField {
|
||||
*/
|
||||
public static DateField of(final int calendarPartIntValue) {
|
||||
switch (calendarPartIntValue) {
|
||||
case Calendar.ERA:
|
||||
return ERA;
|
||||
case Calendar.YEAR:
|
||||
return YEAR;
|
||||
case Calendar.MONTH:
|
||||
return MONTH;
|
||||
case Calendar.WEEK_OF_YEAR:
|
||||
return WEEK_OF_YEAR;
|
||||
case Calendar.WEEK_OF_MONTH:
|
||||
return WEEK_OF_MONTH;
|
||||
case Calendar.DAY_OF_MONTH:
|
||||
return DAY_OF_MONTH;
|
||||
case Calendar.DAY_OF_YEAR:
|
||||
return DAY_OF_YEAR;
|
||||
case Calendar.DAY_OF_WEEK:
|
||||
return DAY_OF_WEEK;
|
||||
case Calendar.DAY_OF_WEEK_IN_MONTH:
|
||||
return DAY_OF_WEEK_IN_MONTH;
|
||||
case Calendar.AM_PM:
|
||||
return AM_PM;
|
||||
case Calendar.HOUR:
|
||||
return HOUR;
|
||||
case Calendar.HOUR_OF_DAY:
|
||||
return HOUR_OF_DAY;
|
||||
case Calendar.MINUTE:
|
||||
return MINUTE;
|
||||
case Calendar.SECOND:
|
||||
return SECOND;
|
||||
case Calendar.MILLISECOND:
|
||||
return MILLISECOND;
|
||||
default:
|
||||
return null;
|
||||
case Calendar.ERA:
|
||||
return ERA;
|
||||
case Calendar.YEAR:
|
||||
return YEAR;
|
||||
case Calendar.MONTH:
|
||||
return MONTH;
|
||||
case Calendar.WEEK_OF_YEAR:
|
||||
return WEEK_OF_YEAR;
|
||||
case Calendar.WEEK_OF_MONTH:
|
||||
return WEEK_OF_MONTH;
|
||||
case Calendar.DAY_OF_MONTH:
|
||||
return DAY_OF_MONTH;
|
||||
case Calendar.DAY_OF_YEAR:
|
||||
return DAY_OF_YEAR;
|
||||
case Calendar.DAY_OF_WEEK:
|
||||
return DAY_OF_WEEK;
|
||||
case Calendar.DAY_OF_WEEK_IN_MONTH:
|
||||
return DAY_OF_WEEK_IN_MONTH;
|
||||
case Calendar.AM_PM:
|
||||
return AM_PM;
|
||||
case Calendar.HOUR:
|
||||
return HOUR;
|
||||
case Calendar.HOUR_OF_DAY:
|
||||
return HOUR_OF_DAY;
|
||||
case Calendar.MINUTE:
|
||||
return MINUTE;
|
||||
case Calendar.SECOND:
|
||||
return SECOND;
|
||||
case Calendar.MILLISECOND:
|
||||
return MILLISECOND;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -59,9 +59,9 @@ class PatternUtil {
|
||||
final int minute = calendar.get(Calendar.MINUTE);
|
||||
final int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
final int month = calendar.get(Calendar.MONTH) + 1;// 月份从1开始
|
||||
final int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期从0开始,0和7都表示周日
|
||||
final int monthBase1 = calendar.get(Calendar.MONTH) + 1;// 月份从1开始
|
||||
final int dayOfWeekBase0 = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期从0开始,0和7都表示周日
|
||||
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.DateUtil;
|
||||
import org.dromara.hutool.core.lang.Console;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Calendar;
|
||||
@ -28,6 +29,6 @@ public class IssueI92H5HTest {
|
||||
final CronPattern pattern = new CronPattern("0 0 0 L 2 ?");
|
||||
//noinspection ConstantConditions
|
||||
final Calendar calendar = pattern.nextMatchAfter(date.toCalendar());
|
||||
System.out.println(DateUtil.date(calendar));
|
||||
Console.log(DateUtil.date(calendar));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user