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 :
Le type de données est le suivant :
L'entité est configurée comme ceci :
Ensuite, le résultat de la requête par défaut est comme ceci :
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
. 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
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
. 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 :
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 :
Redémarrez le projet et testez l'interface, comparez les deux formats de date
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 :
Le résultat dépend bien sûr de la façon dont vous configurez ça :
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!