• java 只返回时分秒 HH:mm:ss


    背景

    前端让返回的时间格式 HH:mm:ss 举例:HH:mm:ss

    实现思路

    1. 返回的字段使用 JsonSerialize, 指定自定义日期转换类
    2. 将 Date 转换为 LocalDateTime
    3. 格式化时间

    代码

    dto类

    /**
     * 执行时间
     */
    @JsonSerialize(using = DateToTimeSerializer.class)
    private Date executeTime;
    

    DateToTimeSerializer类

    /**
     * DateToTimeSerializer
     * @description 截取时间的 HH:mm:ss
     * @author daleyzou
     * @date 2021年02月15日 2:23 下午
     */
    public class DateToTimeSerializer extends JsonSerializer<Date> {
        @Override
        public void serialize(Date date, JsonGenerator gen, SerializerProvider serializers) throws IOException {
            // 截取时间的 HH:mm:ss
            Instant instant = date.toInstant();
            ZoneId zoneId = ZoneId.of("+8");
            LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
            String dateTimeStr = localDateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
            gen.writeString(dateTimeStr);
        }
    }
    

    测试类

    /**
     * DateTimeTest
     * @description 时间测试类
     * @author zoudaifa
     * @date 2021年02月15日 2:50 下午
     */
    public class DateTimeTest {
    
        @Test
        public void timeTest() throws ParseException {
            String dateStr = "2021-02-15 14:39:32";
            Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr);
            Instant instant = date.toInstant();
            ZoneId zoneId = ZoneId.of("+8");
            LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
            String dateTimeStr = localDateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
            System.out.println(dateTimeStr);
        }
    }
    

    后来发现的链接
    https://stackoverflow.com/questions/27247767/jackson-custom-date-serializer#

  • 相关阅读:
    设计模式学习工厂模式
    vector详解
    sizeof() c++primer
    list vector
    vc windows 服务问题:服务没有及时响应启动或控制请求
    程序员规范
    c++ map
    省略符形参
    SQL2005附加数据库时遇到的问题:用户组或角色在当前数据库已存在 .
    Socket 阻塞
  • 原文地址:https://www.cnblogs.com/daleyzou/p/convertToDayTime.html
Copyright © 2020-2023  润新知