【问题标题】:how to convert facebook response date to unix time stamp如何将 facebook 响应日期转换为 unix 时间戳
【发布时间】:2015-03-16 11:34:10
【问题描述】:

我能够在我的 android 应用程序中将所有用户提要到 facebook graph 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);

【问题讨论】:

    标签: java android facebook-graph-api datetime simpledateformat


    【解决方案1】:

    建议从日期中去掉 +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;
    }
    

    【讨论】:

      【解决方案2】:

      你的格式错误。

      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());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-19
        • 1970-01-01
        • 2020-12-23
        • 2016-04-24
        • 2012-07-04
        • 1970-01-01
        相关资源
        最近更新 更多