dd / MM为10月 - 11月 - 12月,其他月份为dd / M - SimpleDateFormat

时间:2017-04-18 15:57:49

标签: android simpledateformat

我目前正在使用SimpleDateFormat(“dd / MM”),例如,今天的日期显示为18/04。但我不想在4之前显示零,即我希望它只是18/4。这是我通过使用SimpleDateFormat(“dd / M”)实现的。

我怀疑的是,10月份将通过Decemeber展示什么?我猜它会截断一个数字,并且每个月只显示1个数字。

我想要的是能够显示这三个月的两位数,但省略所有其他月份的零。除了编写if-then-else代码块之外,有没有直接的方法来完成这项工作?

1 个答案:

答案 0 :(得分:0)

通过测试SimpleDateFormat(“dd / M”)几个月,我发现它的行为符合您的预期:在1个月内不添加零,但不会减少2个数月。以下是11月的一个例子:

@Test
public void shouldPrintNovemberWithTwoDigits() {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M");
    Date november = DateTime.now().plusMonths(6).toDate();
    String expectedDate = "18/10"; 

    String actualDate = simpleDateFormat.format(november);

    assertThat(actualDate, is(expectedDate));
}

这是四月(本月)的一个:

@Test
public void shouldPrintAprilWithOneDigit() {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M");
    Date april = DateTime.now().toDate();
    String expectedDate = "18/4";

    String actualDate = simpleDateFormat.format(april);

    assertThat(actualDate, is(expectedDate));
}

两个测试都通过了..试试看..