Java-如何解析日期?

我正在尝试解析此日期,SimpleDateFormat但无法正常工作:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Formaterclass {

public static void main(String[] args) throws ParseException{

String strDate = "Thu Jun 18 20:56:02 EDT 2019";

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

Date dateStr = formatter.parse(strDate);

String formattedDate = formatter.format(dateStr);

System.out.println("yyyy-MM-dd date is ==>"+formattedDate);

Date date1 = formatter.parse(formattedDate);

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

formattedDate = formatter.format(date1);

System.out.println("dd-MMM-yyyy date is ==>"+formattedDate);

}

}

如果我使用strDate =尝试此代码"2019-10-14",我将获得肯定的答案。有什么问题?如何解析这种格式?

PS。我从jDatePicker那里得到了这个日期,并且没有关于用户选择日期时如何修改日期格式的说明。

回答:

你不能期望使用设置为其他格式的SimpleDateFormat解析日期。

要解析“ 2009年Thu Jun 18 20:56:02 EDT 2019”日期字符串,你需要这样的SimpleDateFormat(大致):

SimpleDateFormat parser=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");

使用此方法将字符串解析为Date,然后使用其他SimpleDateFormat将日期转换为所需的格式。

        String input = "Thu Jun 18 20:56:02 EDT 2009";

SimpleDateFormat parser = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");

Date date = parser.parse(input);

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

String formattedDate = formatter.format(date);

...

以上是 Java-如何解析日期? 的全部内容, 来源链接: utcz.com/qa/420439.html

回到顶部