mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-06 13:48:00 +08:00
fix dayOfMonth
This commit is contained in:
parent
41e9626692
commit
b495a50f28
@ -3,15 +3,18 @@ package cn.hutool.core.date;
|
|||||||
import cn.hutool.core.date.format.GlobalCustomFormat;
|
import cn.hutool.core.date.format.GlobalCustomFormat;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|
||||||
|
import java.time.DayOfWeek;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.time.Month;
|
import java.time.Month;
|
||||||
|
import java.time.MonthDay;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.time.OffsetTime;
|
import java.time.OffsetTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
|
import java.time.chrono.Era;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.TemporalAccessor;
|
import java.time.temporal.TemporalAccessor;
|
||||||
import java.time.temporal.TemporalField;
|
import java.time.temporal.TemporalField;
|
||||||
@ -94,7 +97,7 @@ public class TemporalAccessorUtil extends TemporalUtil{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(time instanceof Month){
|
if(time instanceof DayOfWeek || time instanceof java.time.Month || time instanceof Era || time instanceof MonthDay){
|
||||||
return time.toString();
|
return time.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,6 +123,10 @@ public class TemporalAccessorUtil extends TemporalUtil{
|
|||||||
public static long toEpochMilli(TemporalAccessor temporalAccessor) {
|
public static long toEpochMilli(TemporalAccessor temporalAccessor) {
|
||||||
if(temporalAccessor instanceof Month){
|
if(temporalAccessor instanceof Month){
|
||||||
return ((Month) temporalAccessor).getValue();
|
return ((Month) temporalAccessor).getValue();
|
||||||
|
} else if(temporalAccessor instanceof DayOfWeek){
|
||||||
|
return ((DayOfWeek) temporalAccessor).getValue();
|
||||||
|
} else if(temporalAccessor instanceof Era){
|
||||||
|
return ((Era) temporalAccessor).getValue();
|
||||||
}
|
}
|
||||||
return toInstant(temporalAccessor).toEpochMilli();
|
return toInstant(temporalAccessor).toEpochMilli();
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,7 @@ import cn.hutool.json.JSONUtil;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.time.DayOfWeek;
|
|
||||||
import java.time.MonthDay;
|
import java.time.MonthDay;
|
||||||
import java.time.chrono.Era;
|
|
||||||
import java.time.temporal.TemporalAccessor;
|
import java.time.temporal.TemporalAccessor;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -266,12 +264,10 @@ public class JSONWriter extends Writer {
|
|||||||
writeNumberValue((Number) value);
|
writeNumberValue((Number) value);
|
||||||
} else if (value instanceof Date || value instanceof Calendar || value instanceof TemporalAccessor) {
|
} else if (value instanceof Date || value instanceof Calendar || value instanceof TemporalAccessor) {
|
||||||
// issue#2572@Github
|
// issue#2572@Github
|
||||||
if(value instanceof TemporalAccessor){
|
if(value instanceof MonthDay){
|
||||||
if(value instanceof DayOfWeek || value instanceof Era || value instanceof MonthDay){
|
|
||||||
writeStrValue(value.toString());
|
writeStrValue(value.toString());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
final String format = (null == config) ? null : config.getDateFormat();
|
final String format = (null == config) ? null : config.getDateFormat();
|
||||||
writeRaw(formatDate(value, format));
|
writeRaw(formatDate(value, format));
|
||||||
|
@ -19,7 +19,7 @@ public class Issue2572Test {
|
|||||||
weeks.add(DayOfWeek.MONDAY);
|
weeks.add(DayOfWeek.MONDAY);
|
||||||
final JSONObject obj = new JSONObject();
|
final JSONObject obj = new JSONObject();
|
||||||
obj.set("weeks", weeks);
|
obj.set("weeks", weeks);
|
||||||
Assert.assertEquals("{\"weeks\":[\"MONDAY\"]}", obj.toString());
|
Assert.assertEquals("{\"weeks\":[1]}", obj.toString());
|
||||||
|
|
||||||
final Map<String, Set<DayOfWeek>> monthDays1 = obj.toBean(new TypeReference<Map<String, Set<DayOfWeek>>>() {
|
final Map<String, Set<DayOfWeek>> monthDays1 = obj.toBean(new TypeReference<Map<String, Set<DayOfWeek>>>() {
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user