如何让 LocalTime 实例变量根据我的特定格式接受 json 数据?

How can i make LocalTime instance variable accept json data based on my specific format?

我有问题,我基本上是从 API 获取数据作为 Json 个对象, Json 对象中的字段 time 设置为如下格式:HH:mm

我在填写 LocalTime 对象时遇到问题,因为它的默认格式如下所示 23:37:48.120473200(LocalTime 是我 Message class 中的一个实例变量)

我该如何解决这个问题?

留言class


public class Message {
    private LocalDate date;
    private LocalTime time;
    private String message;
    private String messageId;


    public Message(LocalDate date, LocalTime time, String message, String messageId) {
        this.date = date;
        this.time = time;
        this.message = message;
        this.messageId = messageId;
    }

    @Override
    public String toString() {
        return "Message{" +
                "date='" + date + '\'' +
                ", time='" + time + '\'' +
                ", message='" + message + '\'' +
                ", messageId='" + messageId + '\'' +
                '}';
    }

    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public LocalDate getDate() {
        return date;
    }

    public void setDate(LocalDate date) {
        this.date = date;
    }

    public LocalTime getTime() {
        return time;
    }

    public void setTime(LocalTime time) {
        this.time = time;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}

tl;博士

LocalTime.parse( "03:23" )

详情

文本格式为 24 小时制小时,填充零,后跟冒号和分钟,填充零,符合文本日期时间格式的 ISO 8601 标准。

java.time类在解析此类文本时默认使用 ISO 8601 格式。因此无需指定格式模式。

String input = "03:23" ;
LocalTime lt = LocalTime.parse( input ) ;

如果您使用一个框架来解析您的 JSON,您应该能够要求该框架为您做这个解析。主要 JSON 框架已更新以利用 java.time 类.