Introduction aux annotations @JsonFormat et @DateTimeFormat

@JsonFormat La conversion du format d'heure de l'arrière-plan au premier plan
L'annotation @JsonFormat n'est pas une annotation fournie avec Spring, vous devez donc ajouter des packages de dépendance liés à jackson avant d'utiliser cette annotation. Bien sûr, s'il s'agit d'un projet SpringBoot, vous n'avez pas besoin d'ajouter manuellement des dépendances vous-même, car les dépendances liées à jackson sont déjà incluses dans spring-boot-start-web.
insérez la description de l'image ici

insérez la description de l'image ici

@DataFormat La conversion du format de l'heure d'avant en arrière vers l'arrière-plan** (formatage des paramètres d'entrée) Le
format de date et d'heure spécifié par la valeur de l'attribut pattern de l'annotation @DateTimeFormat doit correspondre aux paramètres entrants. Si l'annotation est :
@DateTimeFormat(pattern="yyyy/ MM/dd HH:mm:ss")
, le paramètre entrant devrait ressembler à ceci :
2018/08/02 22:05:55
Sinon, une exception sera levée.

L'utilisation des annotations :
Déclaration : Concernant l'utilisation de @JsonFormat, assurez-vous d'importer le package correct et complet.

1. Annotez @JsonFormat

1. Utilisez maven pour introduire le package jar requis par @JsonFormat

		<!--JsonFormat-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.8</version>
        </dependency>
  
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.8</version>
        </dependency>
  
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

2. Ajoutez @JsonFormat import java.util.Date à l'attribut de la classe d'entité correspondant au champ de la base de données de l'heure que vous souhaitez interroger
;

import com.fasterxml.jackson.annotation.JsonFormat;
  
public class TestClass {
    
    
  
    //设置时区为上海时区,时间格式自己据需求定。
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date testTime;
  
     
    public Date gettestTime() {
    
    
        return testTime;
    }
  
    public void settestTime(Date testTimee) {
    
    
        this.testTime= testTime;
    }
}

Voici une explication : @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
pattern : est le format de l'heure et de la date dont vous avez besoin pour convertir
le fuseau horaire : est l'heure définie sur East Eighth District , pour éviter la conversion de l'heure Il y a une erreur dans
jackson, qui formate l'heure selon l'heure standard internationale GMT lors de la sérialisation de l'heure, alors que le fuseau horaire par défaut en Chine utilise le fuseau horaire CST, et la différence entre les deux est de 8 heures .
Astuce : L'annotation @JsonFormat peut être placée au-dessus de la propriété, ainsi que sur la méthode get correspondant à la propriété. Il n'y a pas de différence entre les deux méthodes

3. Après avoir terminé les deux étapes ci-dessus, lorsque nous utilisons la classe d'entité correspondante pour recevoir les résultats de la requête de base de données, la conversion du format d'heure est terminée et, lorsqu'elle est renvoyée au frontal, ce sera un format d'heure. conforme à nos paramètres.

2. Annotez @DateTimeFormat

1. L'utilisation de @DateTimeFormat est similaire à celle de @jsonFormat. La première chose à introduire est spring et jodatime

<!-- joda-time -->
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.3</version>
</dependency>

2. Dans la couche contrôleur, lorsque nous utilisons le formulaire spring mvc pour encapsuler automatiquement l'objet de mappage, nous ajoutons @DateTimeFormat à l'attribut correspondant de l'objet recevant les données de premier plan

@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symstarttime;
 
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symendtime;

Remarque : Les deux annotations peuvent être utilisées en même temps, car les données doivent être extraites au premier plan, et les données de premier plan doivent être transmises à l'arrière-plan, et la conversion du format de l'heure est requise.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45334970/article/details/123728571
conseillé
Classement