【发布时间】:2017-06-08 08:11:22
【问题描述】:
我需要在java中比较两个字符串日期:
String date1 = "2017-05-02";
String date2 = "5/2/2017";
//formatter for the first date
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
Date formattedDate1 = formatter.parse(date1);
//formatter for the second date
formatter = new SimpleDateFormat("m/d/yyyy");
Date formattedDate2 = formatter.parse(date2);
//Wrong results
String formatted1 = formattedDate1.toString(); //Mon Jan 02 00:05:00 EET 2017
String formatted2 = formattedDate2.toString(); //Mon Jan 02 00:05:00 EET 2017
实际上,如果我比较这两个,我可能会得到“真实”,但我的日期不是一月,而是“2017 年 5 月 5 日”。
另一个问题是我不能使用 Date 对象,我需要将“2017-05-02”实际转换为“5/2/2017”,然后将其传递给另一个函数
【问题讨论】:
-
m 分钟一小时 根据 javadocs
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleTextFormat现在是 legacy,被 java.time 类取代。见Tutorial by Oracle。 -
要将“2017-05-02”转换为“5/2/2017”,请使用
LocalDate.parse(yyyyMmDdString).format(DateTimeFormatter.ofPattern("M/d/uuuu"))。
标签: java string date date-formatting date-parsing