Home  >  Article  >  Java  >  How SpringBoot implements setting global and local time formatting

How SpringBoot implements setting global and local time formatting

王林
王林forward
2023-05-12 23:16:041330browse

Preface

In development, when we query the date type in the database, it is often not in the time format we want, such as the following situation:

These dates are related in my database The fields are all set to datatime format:

How SpringBoot implements setting global and local time formatting

The data types are as follows:

How SpringBoot implements setting global and local time formatting

The entity is configured like this:

How SpringBoot implements setting global and local time formatting

Then the default query result is like this:

How SpringBoot implements setting global and local time formatting

Help, what kind of format is this, it’s not me at all The desired year, month, day, hour, minute and second.

In fact, it is very simple to solve this problem. It is just that the time format is wrong. Let’s solve this problem through global settings and local settings.

Solve the problem

1 Global settings (recommended)

Generally speaking, for convenience and uniformity, we can set global processing date formatting and configure it in the configuration file

Think of the application configuration file as having properties and There are two formats of yaml. I have prepared the codes required for different formats respectively.

properties format

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

How SpringBoot implements setting global and local time formatting

yaml format

Of course, the above is the properties format, if you are using the yaml format, then you can Use the following configuration:

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

After adding this configuration item, you can restart the service and access the interface again:

You can find that it is the time format we want, but the time is found It is 8 hours longer than the database.

This is caused by adding the time zone. If the time zone configuration item is added, it will be 8 hours longer than the original time. Therefore, this time zone configuration item depends on personal needs and can be configured. You don’t need to configure it

How SpringBoot implements setting global and local time formatting

2 Local settings (not recommended)

Although global configuration is very popular, sometimes we cannot force the global to maintain a unified format , only perform time processing on individual ones

At this time, the role of local settings is reflected. For the convenience of demonstration, I comment out the global settings:

How SpringBoot implements setting global and local time formatting

Introducing pom

Local settings require the use of fastjson dependencies, so you need to download the dependencies

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

Add annotations

Add annotations to the fields that require time formatting :

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

It has two parameters:

1: pattern: time format
2: timezone: time zone

The principle is the same as the two parameters of global settings

Here I estimate that I will take out one annotated and one unannotated time attribute for comparison:

How SpringBoot implements setting global and local time formatting

Restart the project, test the interface, and compare the two Date format

How SpringBoot implements setting global and local time formatting

Of course, like the global configuration, the parameters in the annotation can also be flexibly selected according to your own needs:

For example, I don’t want the time zone here and if you want the format of year, month and day, then just change it directly:

How SpringBoot implements setting global and local time formatting

The result will of course be how you configure it:

How SpringBoot implements setting global and local time formatting

The above is the detailed content of How SpringBoot implements setting global and local time formatting. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete