将日期从一种格式转换为另一种格式不起作用

时间:2015-01-06 19:24:34

标签: java

我有这种格式的日期:Sun Oct 19 01:00:00 ADT 2014

我需要将其转换为以下格式,但我不能,

这是我的代码:

    // The test string
    String str = "Sun Oct 19 01:00:00 ADT 2014";

    // Formatter for the input date
    final DateTimeFormatter inputFormat = 
    DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");

   // The parsed date
   final LocalDateTime parsed = LocalDateTime.parse(str, inputFormat);

       // The output format(s). Specify the one you need
    final DateTimeFormatter outputFormat1 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
     final DateTimeFormatter outputFormat2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");

  // Print
    System.out.println(outputFormat1.format(parsed)); // -> 2014/10/21
      System.out.println(outputFormat2.format(parsed)); // -> 2014-10-21

但它根本不起作用,我从早上开始坚持这个,真的不知道如何解决它,有没有人有任何想法?

2 个答案:

答案 0 :(得分:1)

使用此代码有什么问题。它适用于第19次

    // The test string
    String str = "Sun Oct 19 01:00:00 ADT 2014";

    // Formatter for the input date
    final DateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    // The parsed date
    final Date parsed = inputFormat.parse(str);

    // The output format(s). Specify the one you need
    final DateFormat outputFormat1 = new SimpleDateFormat("yyyy/MM/dd");
    final DateFormat outputFormat2 = new SimpleDateFormat("yyyy-MM-dd");

    // Print
    System.out.println(outputFormat1.format(parsed)); // -> 2014/10/21
    System.out.println(outputFormat2.format(parsed)); // -> 2014-10-21

答案 1 :(得分:1)

我希望您使用的是JDK8,您的导入是以下内容:

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

然后是以下代码:

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

public class Main {

    public static void main(String[] args) {
        // The test string
        String str = "Sun Oct 19 01:00:00 ADT 2014";

        // Formatter for the input date
        final DateTimeFormatter inputFormat =
                DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");

        // The parsed date
        final LocalDateTime parsed = LocalDateTime.parse(str, inputFormat);

        // The output format(s). Specify the one you need
        final DateTimeFormatter outputFormat1 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        final DateTimeFormatter outputFormat2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        // Print
        System.out.println(outputFormat1.format(parsed)); // -> 2014/10/21
        System.out.println(outputFormat2.format(parsed)); // -> 2014-10-21
    }
}

按预期打印:

2014/10/19
2014-10-19

如果您想打印2014/10/21,只需将str更改为:

String str = "Tue Oct 21 01:00:00 ADT 2014";