仿iphone中短信以及通话记录的时间显示

废话不多说,上代码


代码如下:

public String getRelativeTimeSpanStringForIphone(long time,long now){
  SimpleDateFormat formatter = null;
  Resources res = mContext.getResources();
  formatter = new SimpleDateFormat("yy-MM-dd");
  String yearMonthDay = formatter.format(time);
  if(time>now){
   return yearMonthDay;
  }
  formatter = new SimpleDateFormat("E");
  String dayOfWeek = formatter.format(time);

formatter = new SimpleDateFormat("kk:mm");
  String hourMinuOfTime = formatter.format(time);

formatter = new SimpleDateFormat("kk:mm:ss");

String hourMinuSecOfNow = formatter.format(now);

long millisecOfNow = getMillisecOfNow(hourMinuSecOfNow);

if((now-millisecOfNow<time)||(now-millisecOfNow==time)){
   String timeOfCurrentDay = hourMinuOfTime;
   String[] hourAndminute = timeOfCurrentDay.split(":");
   int hour =Integer.parseInt(hourAndminute[0]);
   ContentResolver cv = mContext.getContentResolver();
            String strTimeFormat = android.provider.Settings.System.getString(cv,android.provider.Settings.System.TIME_12_24);
            if(strTimeFormat!=null){
                if(strTimeFormat.equals("12")){
                    if(hour>12){
                    return  res.getString(R.string.pm)+hour%12+":"+hourAndminute[1];
                    }else{
                        return  res.getString(R.string.am)+hour%12+":"+hourAndminute[1];
                    }
                }else{
                    return hour%24+":"+hourAndminute[1];
                }
            }else{
                return hour%24+":"+hourAndminute[1];
            }
  }else{

if(now-518400000l-millisecOfNow>time){
    return yearMonthDay;
   }else{
    if(now-millisecOfNow-86400000l<time){
     //End:modified by sunjinbiao on 20120823 for bug[540] 
     return res.getString(R.string.yesterday);

}else{      
     return dayOfWeek;
    }
   }
  }
 }

(0)

相关推荐

  • Android获取手机通讯录、sim卡联系人及调用拨号界面方法

    android获取手机通讯录联系人信息 复制代码 代码如下: private void getPhoneContacts() {        ContentResolver resolver = this.getContentResolver();                // 获取手机联系人       Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,                  new String[] { Phone

  • Android仿微信联系人按字母排序

    App只要涉及到联系人的界面,几乎都是按照字母排序以及导航栏的方式.既然这个需求这么火,于是开始学习相关内容,此篇文章是我通过参考网上资料独立编写和总结的,希望多多少少对大家有所帮助,写的不好,还请各位朋友指教. 效果图如下: 实现这个效果,需要三个知识点 : 1:将字符串 进行拼音分类 2:ExpandableListView 二级扩展列表 3:右边字母分类View 我们先一个一个来了解解决方案,再上代码. 实现字母分类: 字母分类又分为三个小要点:一个是将中文转化为拼音,一个是实现按照字母的

  • Android根据电话号码获得联系人头像实例代码

    在日常Android手机的使用过程中,根据电话号码获得联系人头像,是经常会碰到的问题.本文即以实例形式讲述了Android根据电话号码获得联系人头像是实现代码.分享给大家供大家参考之用.具体方法如下: 首先,通过ContentProvider,可以访问Android中的联系人等数据.常用的Uri有: 联系人信息Uri:content://com.android.contacts/contacts 联系人电话Uri:content://com.android.contacts/data/phone

  • Android之联系人PinnedHeaderListView使用介绍

    Android联系人中的ListView是做得比较独特的,但是源码写得比较复制,当我们想使用他的时候再从源码中提取,实属不易啊,而且容易出错,这几天,我把他提取出来了,写成一个简单的例子,一是给自己备忘,而是跟大家分享一下,好了,先来看看效果图:  首先是封装好的带头部的PinnedHeaderListView: 复制代码 代码如下: public class PinnedHeaderListView extends ListView { public interface PinnedHeade

  • Android系统联系人全特效实现(上)分组导航和挤压动画(附源码)

    记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组.如下图所示:  最让我感兴趣的是,当后一个分组和前一个分组相碰时,会产生一个上顶的挤压动画.那个时候我思考了各种方法想去实现这种特效,可是限于功夫不到家,都未能成功.如今两年多过去了,自己也成长了很多,再回头去想想这个功能,突然发现已经有了思路,于是立刻记录下来与大家分享. 首先讲一下需要提前了解的知识点,这里我们最需要用到的就是SectionInde

  • android 添加按(power键)电源键结束通话(挂断电话)

    首先我们发现现在我们所用的android智能手机大部分都有当你在打电话时按power键来挂断电话,一般都是在设置中. 我主要是在原生源码中添加这一功能,主要用于学习....先看一张图:  看到那个按电源键挂断电话吧,那就是我所添加的,本来原生源码中是没有这一栏的..... 大概思路: 首先我先添加这一个checkboxPreference,然后将是否选择这一功能的值(0和1)存到data/data/com.android.providers.settings /databases/setting

  • android 加载本地联系人实现方法

    首先先建布局文件,界面很简单,就是一个搜索框和下面的联系人列表:   复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layou

  • Android获取手机通话记录的方法

    Android如何获取手机通话记录,本文为大家揭晓. 获取手机通话记录流程: 1. 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2.resolver.query(*); 需要传入通话记录的URI:CallLog.Calls.CONTENT_URI 3.对查询得到的Cursor进行数据获取. 主要代码如下: MainActivity.java package com.noonecode.contentres

  • android开发教程之使用listview显示qq联系人列表

    首先还是xml布局文件,在其中添加ListView控件: 主布局layout_main.xml 复制代码 代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"

  • Android通话记录备份实现代码

    (一) 前言 Android默认提供了联系人备份到sd卡的功能(代码在com.android.vcard包里面),我们可以把联系人导出成.vcf文件存在sd卡中:如果换手机了,我们又可以把联系人从sd卡文件中导入进来.那么,通话记录我们也能不能做出类似的功能呢?答案是肯定的! (二) 导出通话记录 既然是备份通话记录,那就肯定包括导出和导入的功能,这里我们先讲导出通话记录. 1. 根据通话记录导出的规范,导出的文件一般以.vcl后缀结尾,中间的内容是 复制代码 代码如下: BEGIN:VCALL

随机推荐