gpt4 book ai didi

java - 在 Apache JsonToStringStyle 中格式化日期

转载 作者:行者123 更新时间:2023-11-29 08:25:02 25 4
gpt4 key购买 nike

我正在为我的实体实现 toString 方法。 ZonedDateTime 类型的字段有很多。不幸的是,它被转换为非常长的文本表示:

java.util.GregorianCalendar[
time=1545826815293,
areFieldsSet=true,
areAllFieldsSet=true,
lenient=true,
zone=sun.util.calendar.ZoneInfo
[
id=
"UTC",
offset=0,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null
],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,
ERA=1,
YEAR=2018,
MONTH=11,
WEEK_OF_YEAR=52,
WEEK_OF_MONTH=5,
DAY_OF_MONTH=26,
DAY_OF_YEAR=360,
DAY_OF_WEEK=4,
DAY_OF_WEEK_IN_MONTH=4,
AM_PM=1,
HOUR=0,
HOUR_OF_DAY=12,
MINUTE=20,
SECOND=15,
MILLISECOND=293,
ZONE_OFFSET=0,
DST_OFFSET=0
]

如何使用 SimpleDateFormat 对其进行格式化?我试过这里给出的例子: https://howtodoinjava.com/apache-commons/how-to-override-tostring-effectively-with-tostringbuilder/

public class CustomToStringStyle extends ToStringStyle
{
private static final long serialVersionUID = 1L;
protected void appendDetail(StringBuffer buffer, String fieldName, Object value)
{
if (value instanceof Date)
{
value = new SimpleDateFormat("yyyy-MM-dd").format(value);
}
buffer.append(value);
}
}

但在这种情况下,我不使用 JSON 样式的格式。我无法扩展 JsonToStringStyle,因为它是私有(private)的。

最佳答案

ZonedDateTime 是新的 Java 8 API 的一部分,而 SimpleDateFormat 是旧的错误日期格式化程序。您需要为 Java 8 日期/时间类使用新的 DateFormatter。

然而,您发布的 JSON 既不是 ZonedDateTime,也不是日期,它是 GregorianCalendar,因此不确定您的问题是否真的与您所说的 ZonedDateTime 有关。

关于java - 在 Apache JsonToStringStyle 中格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com