【问题标题】:Convert string dates in java [duplicate]在java中转换字符串日期[重复]
【发布时间】: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.Datejava.util.Calendarjava.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


【解决方案1】:

而且由于旧的 java 日期已损坏,我们都应该停止学习,并且由于 java8 中的新功能将来对我们所有人都有帮助,这里使用 javaTime api 的另一种选择

String date1 = "2017-05-02";
String date2 = "5/2/2017";
LocalDate d1 = LocalDate.parse(date1, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate d2 = LocalDate.parse(date2, DateTimeFormatter.ofPattern("M/d/yyyy"));

System.out.println(d1);
System.out.println(d2);
System.out.println(d2.isEqual(d1));

【讨论】:

    【解决方案2】:

    阅读SimpleDateFormatjavadoc:

    月份是大写的M:

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    

    ...

    formatter = new SimpleDateFormat("M/d/yyyy");
    

    小写的 m 是分钟。

    【讨论】:

    • @Downvoter:请解释一下?
    【解决方案3】:

    m - 分钟
    M - 月

    请阅读日期和时间模式 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    【讨论】:

      猜你喜欢
      • 2011-08-30
      • 2017-11-20
      • 1970-01-01
      • 2023-03-30
      • 2011-06-08
      • 2011-10-25
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      相关资源
      最近更新 更多