2 回答
TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
這取決于你想達(dá)到什么目的?
如果結(jié)果是包含小時(shí)、分鐘和秒的日期,則 DateFormatter 比 DateTimeFormatter 更合適
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(date, formatter);
或者
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalTimeDate localDateWithTime = LocalTimeDate.parse(date, formatter);
生成該錯(cuò)誤是因?yàn)槟胍梢粋€(gè)不帶(小時(shí)、分鐘等)的日期,而使用DateTimeFormatteraLocalDate而不是LocalTimeDate您的模式格式的正確類型。
注意:您不必強(qiáng)制轉(zhuǎn)換CharSequence為String
編輯 2:
如果您要在日期選擇器中輸入的日期是 2019-08-28,模式應(yīng)該是yyyy-MM-dd而不是。MM-dd-yyyy
這里的 JUnit 測(cè)試證明我在說什么:
@Test
public void testDate() {
String date = "2019-08-30 12:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localTimeDate = LocalDateTime.parse(date, formatter);
assertTrue(localTimeDate.toString().equals(date));
}
@Test
public void testDateWithoutTime() {
String date = "2019-08-30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(date, formatter);
assertTrue(localDate.toString().equals(date));
}
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的模式不包含相關(guān)時(shí)間信息。你也需要包括它。
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(stringDate);添加回答
舉報(bào)
