【问题标题】:Unparseable datefrom string [duplicate]字符串中无法解析的日期[重复]
【发布时间】:2020-04-29 15:34:13
【问题描述】:

我有一个这样的日期时间字符串: Java 代码:

String datetimeString = "Tue Apr 10 15:19:06 CEST 2018";

我想把它转换成这样的日期:2018-04-10 我怎样才能做到这一点? 我试过这个:

Date result;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
result = formatter.parse (datetimeString);

但我得到“无法解析的日期”

【问题讨论】:

  • 我建议你不要使用SimpleDateFormatDate。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time APIZonedDateTimeDateTimeFormatter

标签: java


【解决方案1】:

既然你已经应用了暴力破解方法,下面是如何使用 API。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;


public class DateTest {


   public static void main(String[] args) throws Exception {
      String datetimeString = "Tue Apr 10 15:19:06 CEST 2018";

      String from_format = "E MMM dd HH:mm:ss z yyyy";
      String to_format = "yyyy-MM-dd";

      DateTimeFormatter from_formatter = DateTimeFormatter.ofPattern(from_format);
      DateTimeFormatter to_formatter = DateTimeFormatter.ofPattern(to_format);

      LocalDateTime ldt = LocalDateTime.parse(datetimeString, from_formatter);

      System.out.println(ldt.format(to_formatter));
   }
}

DateTimeFormatter 类中,了解格式符号和 正确符号计数的演示描述。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
相关资源
最近更新 更多