如何转换Facebook的API日期为Android应用程序的日期格式日期、应用程序、格式、Facebook

2023-09-08 00:30:47 作者:你丑到我了

我开发一个应用程序,它是类同的android的Facebook应用程序。

我得到了一个创建时间字段从Facebook应用程序

 created_time:2012-11-28T12:53:40 + 0000,
 

所以,我怎么可以把这个成Android的Facebook应用程序,日期格式如

 2小时前,
昨天下午5:30等
 

解决方案

试试这个:

 字符串getCreatedTime = JOConversations.getString(created_time);
长finalTimeStamp = Long.valueOf(getCreatedTime);
SimpleDateFormat的dateFormatter =新的SimpleDateFormat(YYYY-MM-dd'T'hh:MM:SSZ);

SimpleDateFormat的格式= getDateFormat();
一个ParsePosition POS =新的ParsePosition(0);
长那么= formatter.parse(时间戳,POS).getTime();
长今=新的日期()的getTime()。

长秒=(现在 - 然后)/ 1000;
长分=秒/ 60;
长时间=分钟/ 60;
长天=小时/ 24;

字符串友好= NULL;
长NUM = 0;
如果(天大于0){
    NUM =天;
    友好=天+一天;
}否则如果(小时大于0){
    NUM =小时;
    友好=小时+小时;
}否则如果(分钟大于0){
    NUM =分钟;
    友好=分钟+分;
} 其他 {
    NUM =秒;
    友好=秒+第二;
}
如果(民→1){
    友好+ =S;
}
字符串postTimeStamp = friendly.toUpperCase()+以前;
 
直接拿来用 最火的Android开源项目 一

和一个辅助方法,该位的位置:的SimpleDateFormat dateFormatter =新的SimpleDateFormat(YYYY-MM-dd'T'hh:MM:SSZ);

 私有静态的SimpleDateFormat getDateFormat(){
    返回新的SimpleDateFormat(YYYY-MM-dd'T'hh:MM:SSZ);
}
 

我在GitHub上这里的Facebook SDK exmples来源于 StreamRenderer.java 这code座:https://github.com/facebook/facebook-android-sdk/blob/master/examples/stream/src/com/facebook/stream/StreamRenderer.java (检查号线380起)

它不处理方案的昨天下午5:30 的。但是,这应该让你开始。

I am developing an app which is similiar to android facebook app.

I got an created time field from facebook app

  "created_time": "2012-11-28T12:53:40+0000",

So, how can I convert this into date format of android facebook app,like

2hours ago,
yesterday at 5:30pm etc

解决方案

Try this:

String getCreatedTime = JOConversations.getString("created_time");
long finalTimeStamp = Long.valueOf(getCreatedTime);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");

SimpleDateFormat formatter = getDateFormat();
ParsePosition pos = new ParsePosition(0);
long then = formatter.parse(timestamp, pos).getTime();
long now = new Date().getTime();

long seconds = (now - then)/1000;
long minutes = seconds/60;
long hours = minutes/60;
long days = hours/24;

String friendly = null;
long num = 0;
if (days > 0) {
    num = days;
    friendly = days + " day";
} else if (hours > 0) {
    num = hours;
    friendly = hours + " hour";
} else if (minutes > 0) {
    num = minutes;
    friendly = minutes + " minute";
} else {
    num = seconds;
    friendly = seconds + " second";
}
if (num > 1) {
    friendly += "s";
}
String postTimeStamp = friendly.toUpperCase() + " AGO";

And a helper method for this bit here: SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ"); is

private static SimpleDateFormat getDateFormat() {
    return new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
}

I derived this code block from the StreamRenderer.java in the Facebook SDK exmples on GitHub here: https://github.com/facebook/facebook-android-sdk/blob/master/examples/stream/src/com/facebook/stream/StreamRenderer.java (Check Line No. 380 onwards)

It does not deal with the scenario yesterday at 5:30pm. But this should get you started.