Java 半年和季度是否有日期格式

Java 半年和季度是否有日期格式,java,simpledateformat,Java,Simpledateformat,是否有任何格式模式可用于季度和半年的SimpleDateFormat 2007-01-23 expected output `Q1 2007` 2007-01-23 expected output `H1 2007` 不,据我所知,没有这样的事。老实说,我不会让不同的公司对“Q1”和“H1”有不同的想法,比如“Q1在3月份开始的最后一周结束” 要做到这一点,您必须编写自己的代码 编辑:查看Java8Java.time.DateTimeFormatter文档,它似乎支持四

是否有任何格式模式可用于季度和半年的SimpleDateFormat

    2007-01-23 expected output `Q1 2007`  
    2007-01-23 expected output `H1 2007`  

不,据我所知,没有这样的事。老实说,我不会让不同的公司对“Q1”和“H1”有不同的想法,比如“Q1在3月份开始的最后一周结束”

要做到这一点,您必须编写自己的代码


编辑:查看Java8
Java.time.DateTimeFormatter
文档,它似乎支持四分之一,但不支持一半。

正如@Jon Skeet所说,Java8添加了一个名为
DateTimeFormatter
的新类。通过使用此类,您可以按如下方式设置日期格式:

DateTimeFormatter QUARTER_FORMAT = DateTimeFormatter.ofPattern("'Q'q yyyy");
DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(DATE_FORMAT.parse("2007-01-23").toInstant().atZone(ZoneId.systemDefault()).format(QUARTER_FORMAT));
但是如果您想使用这个类格式化
时间戳

这适合
时间戳

DateTimeFormatter QUARTER_FORMAT = DateTimeFormatter.ofPattern("'Q'q yyyy");
System.out.println(new Date((DATE_FORMAT_JA.parse("2018/01/01 13:01:01:011")).getTime()).toInstant().atZone(ZoneId.systemDefault()).toLocalDate().format(QUARTER_FORMAT));

DateTimeFormatter

不支持半年,我们会以更快的速度为您回答此问题。通过此资源搜索的结果是什么?如果你需要这个,考虑创建你自己的类,它扩展了SimuldAdvices格式或者DATEFrase.如果你的谷歌“java格式日期季度”你可以找到很多例子……好吧,如果是这样的话,我可以修改JSTL中的FaldDATA标签来适应我的要求吗?请解释你所做的,而不是仅仅放弃你的代码。请记住,OP也询问了大约半年的时间。一般来说,如果答案包括对代码意图的解释,以及为什么在不介绍其他代码的情况下解决问题,那么答案会更有帮助。