Pat*_*ick 3 java twitter datetime android date
我正在解析twitters,我想显示自推特发布以来多久以来.但它似乎没有正确计算.我从Stackoverflow上的另一个帖子得到了公式,我试图从它构建return语句.
public static String getTwitterDate(Date date){
long milliseconds = date.getTime();
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
if (hours > 0){
if (hours == 1)
return "1 hour ago";
else if (hours < 24)
return String.valueOf(hours) + " hours ago";
else
{
int days = (int)Math.ceil(hours % 24);
if (days == 1)
return "1 day ago";
else
return String.valueOf(days) + " days ago";
}
}
else
{
if (minutes == 0)
return "less than 1 minute ago";
else if (minutes == 1)
return "1 minute ago";
else
return String.valueOf(minutes) + " minutes ago";
}
}
Run Code Online (Sandbox Code Playgroud)
使用此解析twitter日期/时间(也来自Stackoverflow上的帖子)
public static Date parseTwitterDate(String date)
{
final String TWITTER = "EEE, dd MMM yyyy HH:mm:ss Z";
SimpleDateFormat sf = new SimpleDateFormat(TWITTER, Locale.ENGLISH);
sf.setLenient(true);
try {
return sf.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
推特日期示例:"created_at":"星期六,2012年6月30日14:44:40 +0000",
据我所知,twitters正确解析但未正确计算(getTwitterDate).当它相差4-5小时时,有时会返回11个小时.
tig*_*chi 10
使用DateUtils.它是完全本地化的,以人性化的方式做你想做的事.
以下是获取自动本地化的相对时间跨度表达式的示例:
long time = ... // The Twitter post time stamp
long now = System.currentTimeMillis();
CharSequence relativeTimeStr = DateUtils.getRelativeTimeSpanString(time,
now, DateUtils.SECOND_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE);
Run Code Online (Sandbox Code Playgroud)
它产生诸如"10秒前"或"5分钟"的输出.
long milliseconds = date.getTime() - new Date().getTime();
这将根据推文日期和现在之间的差异运行计算。
目前,您的计算基于date.getTime()
自 1970 年 1 月 1 日午夜以来的毫秒数。因为您还引入了模数,所以您当前的函数为您提供了午夜 UTC 和推文之间经过的时间。
归档时间: |
|
查看次数: |
8219 次 |
最近记录: |