yml配置时间格式的属性

本文介绍了在Java项目中,如何通过application.yml配置文件设置User类的时间格式,包括@JsonFormat和@DateTimeFormat注解的使用。前者用于处理后台到前台的时间转换,后者则用于前台到后台的时间转换,确保在JSON序列化和反序列化过程中时间格式正确,并避免时区误差。
摘要由CSDN通过智能技术生成

application.yml:

user:
  id: 1
  name: jarvis
  birth: 1996-05-01 23:25:04   

User类:

@Data
@Component
@ConfigurationProperties("user")
public class User {
    private Integer id;
    private String name;

    @JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime birth;
}

@JsonFormat(timezone = “GMT+8”,pattern=“yyyy-MM-dd HH:mm:ss”)
解决后台到前台时间格式的转换;只在返回json时起作用
-------pattern:需要转换的时间日期的格式
-------timezone:时间设置为东八区,避免时间在转换中有误差
@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)
解决前后到后台的时间格式的转换
-------pattern:需要转换的时间日期的格式

测试:

@RestController
@RequestMapping("/user")
@Slf4j(topic = "UserController")
public class UserController {
    @Autowired
    ApplicationContext context;
    @GetMapping("/getUserInfo")
    public String getUserInfo(){
        log.info(context.getBean(User.class).toString());
        return "asdf";
    }
}

输出:

[nio-8080-exec-1] UserController: User(id=1, name=test, birth=1996-05-01T23:25:04)
### Jackson库中的YML配置 为了在Jackson中处理YAML格式的数据,可以利用`ObjectMapper`配合`YAMLFactory`来实现读取和写入操作。下面展示了一个具体的例子,该案例说明了如何通过Java代码解析并打印来自名为`company.yml`文件的内容。 ```java @Test public void readYamlWithJackson() throws IOException { ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory()); InputStream inputStream = this.getClass().getClassLoader() .getResourceAsStream("company.yml"); Company company = objectMapper.readValue(inputStream, Company.class); System.out.println(company.toString()); } ``` 上述代码片段展示了怎样创建一个基于`YAMLFactory`的`ObjectMapper`对象用于反序列化YAML文档至Java对象[^3]。对于希望自定义行为的情况,比如调整日期格式或是忽略未知属性等,则可以通过设置`ObjectMapper`的相关特性完成: ```java objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); objectMapper.setDateFormat(df); ``` 当涉及到将Java对象转换成YAML字符串时,同样依赖于之前提到过的`ObjectMapper`实例执行此任务。这里给出一段简单的示范代码用来表示这一过程: ```java String yamlContent = objectMapper.writeValueAsString(someJavaObject); System.out.println(yamlContent); ``` 此外,在Spring Boot项目里,默认情况下已经集成了对JSON的支持;如果想要支持YAML作为输入/输出格式的话,只需引入额外的依赖项即可轻松达成目标。需要注意的是,尽管SnakeYAML被广泛应用于加载`.yml`配置文件[^2],但在实际开发过程中也可以考虑采用更高效的替代方案如JACKSON-DATAFORMAT-YAML
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值