【问题标题】:Simple Date Format, Parsing Exception简单日期格式,解析异常
【发布时间】:2016-02-24 05:09:14
【问题描述】:

使用 Android Studio

我正在从 facebook 检索日期,它是一个字符串“2015-11-21T17:49:49+0000

我希望将其转换为格式为“EEE MMM dd HH:mm:ss Z yyyy”的日期,但我当然需要先将其更改为 Date 对象

试图这样做,我试图将其解析为“EEE-MM-dd'T'HH:mm:ssZyyyy”,但这会导致我的程序崩溃。 “ParseException:无法解析的日期:“2015-11-21T17:49:49+0000”(偏移量 0)”

会不会是日期附带的 T 符号?还是我使用了不正确的格式?

【问题讨论】:

  • 你使用什么编程语言?
  • android studio中的java
  • @Legionar 显然不是在发帖时(9 个月前),否则我不会评论...

标签: java date datetime simpledateformat


【解决方案1】:

您的输入格式需要yyyy(不是EEE)。类似的,

String in = "2015-11-21T17:49:49+0000";
String fmtIn = "yyyy-MM-dd'T'HH:mm:ssZ";
String fmtOut = "EEE MMM dd HH:mm:ss Z yyyy";
DateFormat sdf = new SimpleDateFormat(fmtIn);
try {
    Date d = sdf.parse(in);
    DateFormat outSDF = new SimpleDateFormat(fmtOut);
    System.out.println(outSDF.format(d));
} catch (ParseException e) {
    e.printStackTrace();
}

输出(因为我在 EST)是

Sat Nov 21 12:49:49 -0500 2015

【讨论】:

    【解决方案2】:

    您也可以使用GregorianCalendar. 虽然定义它们需要更长的时间,但它们更易于管理。

    GregorianCalendar calendar = new GregorianCalendar();
    
    int year, month, day, hour, minute, second;
    
    //...parse the data and store year, month, day, hour, minute, and second.
    //...
    //...
    
    //fill in calendar's data.
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.MONTH, month - 1); //month is offset by one (January == 0)
    calendar.set(Calendar.DAY_OF_MONTH, day);
    calendar.set(Calendar.HOUR, hour); //No need to edit. 12AM is 0, 1AM is 1, 12PM is 12, etc.
    calendar.set(Calendar.MINUTE, minute);
    calendar.set(Calendar.SECOND, second);
    
    //get time in milliseconds since epoch and create Date object.
    Date date = new Date(calendar.getTimeInMillis());
    

    【讨论】:

      【解决方案3】:

      您可以使用JodaTime 作为外部库。一旦这个库在你的类路径中,你所要做的就是写这样的东西:

      DateTime myDate = new DateTime("2015-11-21T17:49:49+0000");

      然后您可以将其转换为 Date 对象,在 myDate 上调用 toDate() 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多