【问题标题】:How to stop the String from being interpreted as DateTime in Payara?如何阻止字符串在 Payara 中被解释为 DateTime?
【发布时间】:2019-05-16 12:58:41
【问题描述】:

大家好!我有一个休息的get方法,结果存储在这样的地方:

@XmlRootElement(name = "FooDTO")
public class Foo {
    @XmlElement(nillable = true)
    private String approvedDate;
    private static final DateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat(
        "dd.MM.yyyy");


    public Date getApprovedDate() {
        try {
            return StringUtils.isBlank(approvedDate) ? null
                    : DEFAULT_DATE_FORMAT.parse(approvedDate);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    public void setApprovedDate(Date approvedDate) {
        this.approvedDate = approvedDate == null ? "" : DEFAULT_DATE_FORMAT
                .format(approvedDate);
    }
}

它在 Glassfish 服务器中工作,并且我以 dd.MM.yyyy 格式的字符串形式获得了approvedDate。但是,在 Payara 中,字符串被格式化为 yyyy-MM-ddTHH:mm:ssZ[Timezone]。如何调整它以使字符串不会被“解释”为日期时间?谢谢!

【问题讨论】:

    标签: java rest glassfish string-formatting payara


    【解决方案1】:

    我看到您有一个私有字段 approvedDate,因此进程编组/解组通过 get/set 访问此字段,在这种情况下,它在 getApprovedDate 方法上以日期类型返回。

    试试:

    @XmlRootElement(name = "FooDTO")
    public class Foo {
    
        @XmlElement(nillable = true)
        private String approvedDate;
        private static final DateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
    
    
        public String getApprovedDate() {
            return approvedDate;
        }
    
        public void setApprovedDate(Date approvedDate) {
            this.approvedDate = approvedDate == null ? "" : DEFAULT_DATE_FORMAT
                    .format(approvedDate);
        }
    }
    

    【讨论】:

    • 我也可以将 XmlAccessorType 更改为 Field 吗?我害怕更改 getApprovedDate() 的返回类型。它可能有副作用
    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 2019-10-31
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多