如何在文本字段中格式化 java.time.LocalDate? [复制]

Posted

技术标签:

【中文标题】如何在文本字段中格式化 java.time.LocalDate? [复制]【英文标题】:How to format java.time.LocalDate in a textField? [duplicate] 【发布时间】:2017-07-30 13:15:56 【问题描述】:

我试图在我的报告中显示java.time.LocalDate,格式为:

<textField pattern="EEEEE dd MMMMM yyyy">
    <reportElement x="64" y="0"   uuid="5e003c53-2327-4f75-9adf-831a3bb494ff"/>
    <textElement verticalAlignment="Middle">
        <font isBold="true" isUnderline="true"/>
    </textElement>
    <textFieldExpression><![CDATA[$FdateFacture]]></textFieldExpression>
</textField>

但我得到的日期如下:2017-03-09。是 java.time.LocalDate 类型的原因吗?

【问题讨论】:

看起来像LocalDate.toString()的结果好吧。我不知道 Jasper Reports 对这个问题的回答。在纯 Java 中,您将使用 LocalDate.format(DateTimeFormatter) 已解决:$FdateFacture.format(java.time.format.DateTimeFormatter.ofPattern("EEEE d MMMM yyyy")) @PetterFriberg,其他问题的答案解释了如何在 Java 中格式化 LocalDateTime,而不是在 Jasper 报告中格式化 LocalDate。问题标记为 jasper-reports,而不是 java,这可能意味着 Jasper 报告上下文是提问者的问题?托马斯最能说明问题。 我已经增强了这个 question 以包含 java.time.LocalDate 并且它展示了如何使用似乎是 OP 最初意图的模式来做到这一点。请注意,在 jasper-reports 中,最好使用模式在导出到例如 excel 时使用正确的格式。 【参考方案1】:

为了证明这个问题已经得到解答,下面是提问者在评论中报告的解决方案:

<textFieldExpression>
    <![CDATA[$FdateFacture.format(java.time.format.DateTimeFormatter.of‌​Pattern("EEEE d MMMM yyyy"))]]>
</textFieldExpression>

【讨论】:

以上是关于如何在文本字段中格式化 java.time.LocalDate? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

输入时如何将文本字段格式设置为十进制?

如何在 Vuetify 文本字段中更改 type=date 的时间戳格式

如何右对齐和格式化输入到 Strut2 文本字段中的金额?

如何在 UIAlertview 中为文本字段设置货币格式

如何根据 s-s-rS 中单独字段的值有条件地格式化整行的文本颜色?

如何在 vuetify 文本字段中使用掩码?