2017-04-18 63 views
-1

我目前使用SimpleDateFormat(「dd/MM」),例如顯示今天的日期爲18/04。但我不想在4之前顯示零,即我只希望它只有18/4。這通過使用SimpleDateFormat(「dd/M」)來實現。dd/MM十月 - 十一月 - 十二月,其他月份dd/M - SimpleDateFormat

我的疑問是,十月到十二月份會顯示什麼?我猜測它會截斷一個數字,並且每個月只顯示一個數字。

我想要的是能夠顯示兩個數字爲這三個月,但省略零其他所有月份。除了編寫一個if-then-else代碼塊之外,是否有一種直接的方式來完成這個任務?

+0

使用日曆來獲得一個月(或者確保你知道它從0開始)並檢查月份> = 10(如果你沒有添加一個,則爲9) – Zoe

+0

更改設備/模擬器上的日期以檢查:)我認爲它會沒事的。 –

+0

如果您使用「dd/M」,您將沒有問題。我只是測試它。 – Dejvid

回答

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)); 
} 

而且這裏有一個較4月份(當月):

@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)); 
} 

兩個測試都通過了..試試吧..

+0

謝謝,它確實有效。 –