解决时间输出格式带 T 带 000+00:00

两种方法:

1. 全局修改

SpringBoot 项目在 application.yml 配置文件
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

来源:https://blog.csdn.net/Wxin0721/article/details/124365194

2. 增加注解

创建类JsonDateSerialize
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons.lang3.time.DateFormatUtils;

import java.io.IOException;
import java.util.Date;

/**
 * @Description TODO 返回时间对象格式设置为'yyyy-MM-dd HH:mm:ss'
 * @Date 2023-08-24 10:27
 */
public class JsonDateSerialize extends JsonSerializer<Object>{

    @Override
    public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException,JsonProcessingException {
        if(value!=null){
            String r = null;
            if(value instanceof Date){
                r = DateFormatUtils.format((Date)value, "yyyy-MM-dd HH:mm:ss");
            }
            if(value instanceof String){
                r = DateFormatUtils.format(new Date(Long.valueOf(value.toString())), "yyyy-MM-dd HH:mm:ss");
            }
            if(value instanceof Long){
                r = DateFormatUtils.format(new Date((Long)value), "yyyy-MM-dd HH:mm:ss");
            }
            gen.writeObject(r);
        }else{
            gen.writeString("");
        }
    }
}

上述"yyyy-MM-dd HH:mm:ss" 可以设置一个实体类来替换

在对应实体字段上加入注解:

@JsonSerialize(using= JsonDateSerialize.class)
private Date createtime

来源:https://blog.csdn.net/weixin_42649985/article/details/131418566

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将给定的日期时间字符串数组转换为当地时间,你可以使用 Java 中的 `DateTimeFormatter` 和 `ZonedDateTime` 类来完成。以下是一个示例代码: ```java import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; public class Main { public static void main(String[] args) { String[] dateTimeStrings = {"2023-07-21T20:40+08:00", "2023-07-21T20:40+08:00", "2023-07-21T20:40+08:00", "2023-07-21T20:40+08:00"}; // 创建 DateTimeFormatter 对象,指定输入日期时间字符串的格式 DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; // 遍历日期时间字符串数组 for (String dateTimeString : dateTimeStrings) { // 将日期时间字符串解析为 ZonedDateTime 对象 ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateTimeString, formatter); // 获取系统默认时区的当地时间 ZonedDateTime localDateTime = zonedDateTime.withZoneSameInstant(ZonedDateTime.now().getZone()); // 格式化输出当地时间 DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String localDateTimeString = localDateTime.format(outputFormatter); System.out.println("Local date and time: " + localDateTimeString); } } } ``` 运行以上代码,将会遍历并输出转换后的每个日期时间的当地时间,格式为 "yyyy-MM-dd HH:mm:ss"。请确保你的代码中已经导入了正确的日期时间相关的类和包。同时,注意设置合适的时区来获取正确的当地时间。 希望这次的回答能够解决你的问题。如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值