半年广告季度是否有任何日期格式

时间:2014-08-27 17:39:25

标签: java simpledateformat

我可以使用SimpleDateFormat四季度和半年的格式模式吗?

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

2 个答案:

答案 0 :(得分:4)

不,就我所知,没有类似的东西。我不会过去不同公司对“Q1”和“H1”的不同想法开始,说实话 - 例如“Q1在3月开始的最后一周结束时”。

你必须编写自己的代码才能做到这一点。

编辑:查看Java 8 java.time.DateTimeFormatter文档,看起来它支持宿舍但不支持一半。

答案 1 :(得分:1)

正如@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));

但是如果你想使用这个类格式化Timestamp it will throw UnsupportedOperationException.

这适合Timestamp

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不支持半年。