4
4
import com .alibaba .fastjson2 .codec .FieldInfo ;
5
5
import com .alibaba .fastjson2 .filter .*;
6
6
import com .alibaba .fastjson2 .util .BeanUtils ;
7
+ import com .alibaba .fastjson2 .util .DateUtils ;
7
8
import com .alibaba .fastjson2 .util .Fnv ;
8
9
import com .alibaba .fastjson2 .util .TypeUtils ;
9
10
10
11
import java .lang .reflect .Field ;
11
12
import java .lang .reflect .Type ;
12
- import java .util .Arrays ;
13
- import java .util .Collection ;
14
- import java .util .List ;
15
- import java .util .Map ;
13
+ import java .time .LocalDate ;
14
+ import java .time .LocalDateTime ;
15
+ import java .util .*;
16
16
17
17
import static com .alibaba .fastjson2 .JSONB .Constants .BC_TYPED_ANY ;
18
18
import static com .alibaba .fastjson2 .JSONWriter .Feature .*;
@@ -590,6 +590,19 @@ public JSONObject toJSONObject(T object) {
590
590
for (int i = 0 ; i < fieldWriters .size (); i ++) {
591
591
FieldWriter fieldWriter = fieldWriters .get (i );
592
592
Object fieldValue = fieldWriter .getFieldValue (object );
593
+ String format = fieldWriter .format ;
594
+ Class fieldClass = fieldWriter .fieldClass ;
595
+ if (format != null ) {
596
+ if (fieldClass == Date .class ) {
597
+ fieldValue = DateUtils .format ((Date ) fieldValue , format );
598
+ } else if (fieldClass == LocalDate .class ) {
599
+ fieldValue = DateUtils .format ((LocalDate ) fieldValue , format );
600
+ } else if (fieldClass == LocalDateTime .class ) {
601
+ fieldValue = DateUtils .format ((LocalDateTime ) fieldValue , format );
602
+ } else if (fieldClass == LocalDate .class ) {
603
+ fieldValue = DateUtils .format ((LocalDate ) fieldValue , format );
604
+ }
605
+ }
593
606
594
607
long fieldFeatures = fieldWriter .features ;
595
608
if ((fieldFeatures & FieldInfo .UNWRAPPED_MASK ) != 0 ) {
@@ -600,7 +613,7 @@ public JSONObject toJSONObject(T object) {
600
613
601
614
ObjectWriter fieldObjectWriter = fieldWriter .getInitWriter ();
602
615
if (fieldObjectWriter == null ) {
603
- fieldObjectWriter = JSONFactory .getDefaultObjectWriterProvider ().getObjectWriter (fieldWriter . fieldClass );
616
+ fieldObjectWriter = JSONFactory .getDefaultObjectWriterProvider ().getObjectWriter (fieldClass );
604
617
}
605
618
List <FieldWriter > unwrappedFieldWriters = fieldObjectWriter .getFieldWriters ();
606
619
for (int j = 0 ; j < unwrappedFieldWriters .size (); j ++) {
0 commit comments