gpt4 book ai didi

java - "%tB"格式化程序如何工作?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:28:49 50 4
gpt4 key购买 nike

System.out.format("%tB",12);

我应该从中得到一个“十二月”,但是我得到了一个很好的异常(exception)

Exception in thread "main" java.util.IllegalFormatConversionException: b != java.lang.Integer

这意味着我使用的语法是错误的。我在网上找不到任何解释 %tB 格式化命令的引用资料。有人帮忙澄清一下吗?提前致谢。

最佳答案

来自Formatter documentation :

Date/Time - may be applied to Java types which are capable of encoding a date or time: long, Long, Calendar, and Date.

您可以使用长整数(例如 12L)来消除异常。但请注意,格式化程序需要日期的整数表示(即具有毫秒精度的 Unix 时间戳)。

为了得到你想要的,你可以尝试在1970年的一个月中手动建立一个大概的时间戳:

int month = 12;
int millisecondsInDay = 24*60*60*1000;
long date = ((month - 1L)*30 + 15)*millisecondsInDay;
System.out.format("%tB", date);

或者简单地使用一个Date对象:

System.out.format("%tB", new Date(0, 12, 0));

另请注意,您可以在没有 Formatter 的情况下做同样的事情:

java.text.DateFormatSymbols.getInstance().getMonths()[12-1];

参见 DateFormatSymbols了解更多信息。

关于java - "%tB"格式化程序如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232447/

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