3 回答

TA貢獻1830條經驗 獲得超3個贊
將java.timeinstead of用于java.util日期和時間以及格式化和解析。
public static void main(String args[]) throws Exception {
// create a custom formatter for your pattern
DateTimeFormatter euroDtf = DateTimeFormatter.ofPattern("dd-MM-yyyy");
// receive today's date
LocalDate today = LocalDate.now();
// parse a date that has the form of your pattern using your custom formatter
LocalDate parsedDate = LocalDate.parse("31-07-2019", euroDtf);
System.out.println("Today is " + today.format(euroDtf));
System.out.println("Parsed date is " + parsedDate.format(euroDtf));
}

TA貢獻1876條經驗 獲得超6個贊
我會說SimpleDateFormat是遺留的,使用 jdk-8LocalDate
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate date1 = LocalDate.parse("31-07-2019",formatter);
LocalDate date2 = LocalDate.now();
你也可以使用isBefore, isAfter進行比較
date1.isAfter(date2);
date2.isBefore(date2);
默認情況下以格式LocalDate返回日期ISO-8601
ISO-8601 日歷系統中沒有時區的日期,例如 2007-12-03。
比較后,您可以LocalDate使用相同的格式化程序將其格式化為字符串
String date2 = LocalDate.now().format(formatter);
SimpleDateFormat.parse返回java.util.Date
對象
public Date parse(String source) throws ParseException
并Date.toString()代表模式的字符串
public String toString()
?Converts this Date object to a String of the form:
? ? ?dow mon dd hh:mm:ss zzz yyyy

TA貢獻1784條經驗 獲得超2個贊
這是預期的行為
Date 類代表一個特定的時間點,精度為毫秒。
format() 將以“格式”生成日期的字符串表示形式。parse() 將返回一個日期對象,該對象始終采用“Fri Aug 02 16:14:21 SGT 2019”格式。
這里需要注意的是,構造函數中提供的模式應該與使用 parse 方法解析的日期格式相同。
添加回答
舉報