如何将字符串(Twitter4j格式)转换为Java日期

时间:2014-08-24 20:39:33

标签: java twitter4j

我想从以下字符串中提取日期和年份,并将其转换为Java中的数据对象。

  

Mon Jul 07 19:18:26 CEST 2014

如何以复杂的方式从文本中提取日期和年份(在本例中为2014-07-07)?

2 个答案:

答案 0 :(得分:2)

SimpleDateFormat s = new SimpleDateFormat("dd/MMM/yyyy");
String dateInString = "Mon Jul 07 19:18:26 CEST 2014";

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

                    try {
                        Date date = s.parse(dateInString.split(" ")[2]+"/"+dateInString.split(" ")[1]+"/"+dateInString.split(" ")[5]);
                        System.out.println(new SimpleDateFormat("YYYY-MM-dd").format(date));
                    } catch (ParseException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

这应该适合你,我拆分你的字符串,然后把它放到一个日期格式,然后按照你想要的方式格式化,假设你想要将月份作为年后的第二个参数,如果那不是例如,您只需将'MM'更改为'dd',将'dd'更改为'MM'。

答案 1 :(得分:0)

对于Java 7或更低版​​本,请使用SimpleDateFormat进行解析和格式化:

Locale dateLocale = Locale.US;
SimpleDateFormat inFormat = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", dateLocale);
Date date = inFormat.parse("Mon Jul 07 19:18:26 CEST 2014");
SimpleDateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd", dateLocale);
System.out.println(outFormat.format(date));

从Java 8开始,您可以使用DateTimeFormatter

Locale dateLocale = Locale.US;
DateTimeFormatter inFormatter = DateTimeFormatter.ofPattern("E MMM dd HH:mm:ss z yyyy", dateLocale);
TemporalAccessor date = inFormatter.parse("Mon Jul 07 19:18:26 CEST 2014");
DateTimeFormatter outFormatter = DateTimeFormatter.ISO_LOCAL_DATE;
System.out.println(outFormatter.format(date));