首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当日期类型数据被重新加工为JSON时,格式指定的位置是什么?

当日期类型数据被重新加工为JSON时,格式指定的位置是什么?
EN

Stack Overflow用户
提问于 2016-12-21 01:59:55
回答 1查看 332关注 0票数 0

用"Spring + Spring Data + Cassandra“配置创建示例应用程序。

假设存储了下列数据

结果查询

代码语言:javascript
复制
cqlsh:keyspaceb> SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY id;

 pkey1 | pkey2 | id                                   | name     | date                     | memo
-------+-------+--------------------------------------+----------+--------------------------+----------------
     a |     b | ---- |   tanaka | 2016-12-13 00:00:00+0000 | greet message1
     a |     b | ---- | yamamoto | 2016-12-13 00:00:00+0000 | greet message2

创建Rest应用程序,发出curl的结果如下所示。

代码语言:javascript
复制
$ curl http://localhost:8888/MemoBoxCassandra/api/memobox -i -XGET
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   265    0   265    0     0   1064      0 --:--:-- --:--:-- --:--:--  1132HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 21 Dec 2016 01:21:43 GMT

[{"pkey1":"a","pkey2":"b","id":"----","name":"tanaka","memo":"greet message1","date":1481587200000},{"pkey1":"a","pkey2":"b","id":"f5ed41c0-c657-11e6-8db6-27bcd31c20cd","name":"yamamoto","memo":"greet message2","date":1481587200000}]

在这里,“列”是“日期”,但我不想要我想要的格式。

在卡桑德拉一侧,这是一个“时间戳”类型。在Java的实体端,它是"java.util.Date“类型。仓库类的获取部分如下所示。

代码语言:javascript
复制
package com.example.sb.repository;

import java.util.List;
import java.util.UUID;
import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.cassandra.repository.Query;
import org.springframework.stereotype.Repository;
import com.example.sb.entity.MemoBox;

@Repository
public interface MemoBoxRepository extends CassandraRepository<MemoBox> {
    @Query("SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY id")
    List<MemoBox> findAllOrderById();
}

我应该在哪里指定日期格式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-21 05:32:18

您可以在configuration类中使用ObjectMapper定义日期格式。

代码语言:javascript
复制
@Configuration
public class JacksonConfiguration {
    @Bean
    public ObjectMapper objectMapper() {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z");
        ObjectMapper mapper = new ObjectMapper();
        mapper.setDateFormat(df);
        return mapper;
    }
}

以上将影响所有具有Date属性的类,这些类使用jackson进行序列化和反序列化。如果您想要一个特定的类和属性,可以在POJO/实体中使用@JsonFormat,如下所示。

代码语言:javascript
复制
public class Person {

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
    private Date dateOfBirth;

    // other properties

    // setters and getters
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41253987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档