如何将 facebook 响应日期转换为 unix 时间戳

how to convert facebook response date to unix time stamp

我可以在我的 android 应用程序中将所有用户提要发送到 facebook 图 api。以下是来自 updated_time 键的日期字符串:

  2014-12-14T18:23:17+0000

首先我找不到这个字符串的格式。从google我才知道,这可能是RFC 2822 date format.

我想将此日期字符串转换为 unix 时间戳以获取新的用户提要。如何将此字符串转换为 unix 时间戳?

如果我尝试使用以下甲酸盐解析此字符串,我将得到空日期:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);

建议去掉日期中的+0000,因为这是时区信息。然后分别处理时区,即作为整数,您可以通过乘以剥离的时区并将其转换为毫秒来从以毫秒为单位的时间中添加或减去它。

public static long getDateInMillis(String srcDate) {
    try {
        SimpleDateFormat desiredFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

        long dateInMillis = 0;
        try {
            Date date = desiredFormat.parse(srcDate);
            dateInMillis = date.getTime();
            return dateInMillis;
        } catch (ParseException e) {
            e.printStackTrace();
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return 0;
}

你的格式错误。

String timeStamp = "2014-12-14T18:23:17+0000";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH);
System.out.println("Unix timestamp: " + dateFormat.parse(timeStamp).getTime());