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 方法解析的日期格式相同。
添加回答
举报