Maison  >  Article  >  Java  >  Comment SpringBoot implémente la définition du formatage de l'heure globale et locale

Comment SpringBoot implémente la définition du formatage de l'heure globale et locale

王林
王林avant
2023-05-12 23:16:041330parcourir

Avant-propos

En développement, lorsque nous interrogeons le type de date dans la base de données, il n'est souvent pas au format d'heure souhaité, comme dans la situation suivante :

Dans ma base de données, ces champs liés à la date sont définis au format datatime :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Le type de données est le suivant :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

L'entité est configurée comme ceci :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Ensuite, le résultat de la requête par défaut est comme ceci :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Aide, quel genre de format c'est ça, ce n'est pas du tout moi L'année, le mois, le jour, l'heure, la minute et la seconde souhaités.

En fait, il est très simple de résoudre ce problème. C'est juste que le format de l'heure est incorrect. Résolvons ce problème via les paramètres globaux et locaux

Résoudre le problème

1 Paramètres globaux (recommandé)

. D'une manière générale, pour plus de commodité et d'unification, nous pouvons mettre en place le formatage global de la date de traitement et le configurer dans le fichier de configuration

Pensant que le fichier de configuration de l'application a deux formats : propriétés et yaml, j'ai préparé les codes requis pour les différents formats.

format des propriétés

# 设置全局的日期格式为年月日时分秒
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 世界标准时间,为了方式时差,需要+8小时
spring.jackson.time-zone=GMT+8

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

format yaml

Bien sûr, ce qui précède est le format des propriétés. Si vous utilisez le format yaml, vous pouvez utiliser la configuration suivante :

spring 
  jackson: 
    date-format: yyyy-MM-dd HH:mm:ss #设置全局的日期格式为年月日时分秒
    time-zone: GMT+8 #世界标准时间,为了方式时差,需要+8小时

Après avoir ajouté cet élément de configuration, vous pouvez. redémarrez le service Maintenant, visitez à nouveau l'interface :

Vous pouvez constater que c'est le format d'heure que nous voulons, mais l'heure trouvée est 8 heures plus longue que la base de données

Cela est dû à l'ajout du fuseau horaire si vous ajoutez le. élément de configuration du fuseau horaire, il sera dans l'original Certaines heures sont de +8 heures, donc cet élément de configuration du fuseau horaire dépend des besoins personnels. Vous pouvez ou non le configurer

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

2 Paramètres locaux (non recommandés)

. Bien que la configuration globale soit très populaire, nous ne pouvons parfois pas forcer le monde entier à maintenir un format unifié et effectuer le traitement du temps uniquement sur des formats individuels

À l'heure actuelle, le rôle des paramètres locaux est reflété. Pour faciliter la démonstration, Je commente les paramètres globaux :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Introduire pom

Les paramètres partiels nécessitent l'utilisation de dépendances fastjson, vous devez donc télécharger les dépendances

 <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

Ajouter des annotations

Ajouter des annotations aux champs qui doivent être formatés dans l'heure :

 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

Il a deux paramètres :

1 : motif : format de l'heure
2 : fuseau horaire : Le fuseau horaire

le principe est le même que les deux paramètres du réglage global

Ici j'estime que je vais en retirer un annoté et un attribut temporel non annoté pour comparaison :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Redémarrez le projet et testez l'interface, comparez les deux formats de date

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Bien sûr, comme la configuration globale, les paramètres dans les annotations sont également sélectionnés de manière flexible en fonction selon vos propres besoins :

Par exemple, je ne veux pas le fuseau horaire ici, et je veux le format de l'année, du mois et du jour, Ensuite, changez-le directement :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Le résultat dépend bien sûr de la façon dont vous configurez ça :

Comment SpringBoot implémente la définition du formatage de lheure globale et locale

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer