дата выпуска в фейсбуке - PullRequest
0 голосов
/ 28 апреля 2011

я делаю приложение для фейсбука. Nim получает update_date = 2011-03-23T04: 30: 43 + 0000 в этом формате. Теперь я хочу, чтобы время с того же дня было таким же, как в браузере Facebook.после 5.30 не работает нормально.Я думаю, что его проблема в GMT, но я не могу найти какое-либо решение, поэтому, пожалуйста, помогите мне ...

спасибо заранее .. CapDroid.

Я использую этот код ... где str = 2011-03-23T04: 30: 43 + 0000

static public String dateformate(String str)
{

SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+SSSS");

java.util.Date date = null;
try 
{
    date = form.parse(str);
}
catch (ParseException e) 
{
    e.printStackTrace();
}
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("India"),Locale.getDefault());

calendar.set(Calendar.DATE,date.getDate());
calendar.set(Calendar.MONTH,date.getMonth());
calendar.set(Calendar.YEAR, date.getYear()+1900);
calendar.set(Calendar.HOUR,date.getHours());
calendar.set(Calendar.MINUTE,date.getMinutes());
calendar.set(Calendar.SECOND,date.getSeconds());

final long current = System.currentTimeMillis();
final long update = calendar.getTimeInMillis();
final long timeago = Math.abs(current-update);
if(timeago<=60000)
{
    int time = (int)(timeago/1000);
    return Integer.toString(time)+" seconds ago"; 
}
else if(timeago<=3600000 && timeago>=60000)
{
    int time = (int)(timeago/60000);
    return Integer.toString(time)+" minutes ago";
}
else if(timeago<=86400000 && timeago>=3600000)
{
    int time = (int)(timeago/3600000);
    return Integer.toString(time)+" hour ago";
}
}

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

попробуйте этот фрагмент кода

Calendar calendar = Calendar.getInstance();
            TimeZone timezone = TimeZone.getDefault();
            TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");

            int currentGMTOffset = timezone.getOffset(calendar.getTimeInMillis());
            int gmtOffset = utcTimeZone.getOffset(calendar.getTimeInMillis());

            calendar.setTimeInMillis(calendar.getTimeInMillis() + (gmtOffset - currentGMTOffset));


            final long current = calendar.getTimeInMillis();
//          final long update = calendar.getTimeInMillis();
            final long update = date.getTime();
            final long timeago = Math.abs(current-update);
0 голосов
/ 28 апреля 2011

Если я правильно понял, вы хотите рассказать своим пользователям, как давно было сделано какое-то сообщение?

Почему бы не преобразовать метку времени, полученную из Facebook, в метку времени unixtime и работать с разницей с текущей меткой времени?

private static long convertDateToUnixTimeStamp(Date date) {
    return date.getTime() / 1000L;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...