`

Android 短信列表的时间显示

 
阅读更多

转自: http://www.cnblogs.com/flyme/archive/2011/06/30/2094415.html

 

Android 中短信的时间的显示做的很精细。首先,保存在短信数据库 mmssms.db 中的短信时间都是 Long 型的数字。当查询动作结束时,取到这个值之后,会做转换,具体转换的动作在MessageUtils.java的formatTimeStampString函数中完成。

public static String formatTimeStampString(Context context, long when) {
        return formatTimeStampString(context, when, false);
    }

 

public static String formatTimeStampString(Context context, long when, boolean fullFormat) {
        Time then = new Time();
        then.set(when);
        Time now = new Time();
        now.setToNow();

        // Basic settings for formatDateTime() we want for all cases.
        int format_flags = DateUtils.FORMAT_NO_NOON_MIDNIGHT |
                           DateUtils.FORMAT_ABBREV_ALL |
                           DateUtils.FORMAT_CAP_AMPM;

        // If the message is from a different year, show the date and year.
        if (then.year != now.year) {
            format_flags |= DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE;
        } else if (then.yearDay != now.yearDay) {
            // If it is from a different day than today, show only the date.
            format_flags |= DateUtils.FORMAT_SHOW_DATE;
        } else {
            // Otherwise, if the message is from today, show the time.
            format_flags |= DateUtils.FORMAT_SHOW_TIME;
        }

        // If the caller has asked for full details, make sure to show the date
        // and time no matter what we've determined above (but still make showing
        // the year only happen if it is a different year from today).
        if (fullFormat) {
            format_flags |= (DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME);
        }

        return DateUtils.formatDateTime(context, when, format_flags);
    }

 

从第二个具体实现的函数可以看出来,Android是根据当前的时间为比较的依据来决定显示的时间格式:

        1. 如果当前的短信时间中年份跟手机当前的年份不一致,则显示年月日,不显示具体的几点几分,如:2010-6-30

        2. 如果短信的时间跟手机当前时间在同一年,但不是同一天,则只显示月日,如:6月29日

        3.如果是当天的短信,则会计算是上午还是下午的短信,同时显示几点几分记录的该短信,如:下午 12:55

分享到:
评论

相关推荐

    Android编程之短信列表的时间显示实例分析

    主要介绍了Android编程之短信列表的时间显示,实例分析了Android中短信列表的时间显示及具体注意事项,具有一定参考借鉴价值,需要的朋友可以参考下

    自己开发的Android 直接发送短信方法附上代码.rar

    这是一个自己开发的Android 直接发送短信方法附上代码,Android 发短信功能,包括了对内容合法性的验证,发送完成弹出提示。自己开发的直接发送短信的方法:  private void sendSMS(String telNo,String smsStr,...

    android短信加密(发送加密短信,解密本地短信)

    短信加密此类功能由于新手学习的需求量较小,所以在网上很少有一些简单的demo供新手...平时我们发送短信几乎不限长度,是因为一旦超过了单条短信的长度,手机会自动分多条发送,然后接收方分多条接收后整合在一起显示。

    Android项目 SMS 短信内容显示在一个 泡泡 形状的窗口中.rar

    本项目为一款独特的Android短信应用,其核心功能在于将接收到的短信内容以泡泡形状的窗口形式展示。这一设计不仅提升了视觉效果,还极大地增强了用户与短信内容的互动性。项目基于Android Studio开发,采用Java或...

    Android_Dialog倒计时可任意设定时间

    Android_Dialog倒计时可任意设定时间

    Android Studio 3.2 读取通话记录源码

    Android Studio 3.2 读取通话记录姓名,手机号,通话时间,通话记录等源码。

    Android的TextView使用Html来处理图片显示、字体样式、超链接等

    这段时间在做一个短信项目,需要实现短信中插入表情的功能,本一位非常困难,经过一段时间的研究,发现还是比较簡単的,现在总结如下。 以短信输入框为例,短信的输入框是一个EditText,它的append方法不仅可以...

    android天气预报项目报告

    android天气预报项目报告,毕业设计报告。 第二章 需求分析 一. 功能需求 在这个综合示例中,有一个显示天气情况的用户界面,可以通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向和雨雪情况等。...

    10大经典Android开源项目分享(学习android必备)

    由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。  2、 Remote Droid  RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸...

    android 10个开源项目的学习

    由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。  2、 Remote Droid  RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸...

    android开发demo集合

    21、SmsManager 消息管理器,发短信(这里是模拟器只能给其它模拟器发短信) 22、Intent Action、Category属性 测试 23、系统 Action、Category属性 24、ClipDrawable 徐徐展开的风景 25、AnimationDrawable 会...

    Android入门到精通源代码.

    4.2.10 时间选择器(TimePicker) 4.2.11 数字时钟(DigitalClock) 4.2.12 表状时钟(AnalogClock) 4.2.13 进度条(ProgressBar) 4.2.14 拖动条(SeekBar) 4.2.15 评分条(RatingBar) 第5章 Android中的视图...

    《Google Android SDK开发范例大全(第3版)》.pdf

    4.19 在activity里显示列表 128 4.20 以动态列表配置选项 130 4.21 查找程序根目录下所有文件 134 4.22 加载手机磁盘里的图片文件 137 4.23 动态放大缩小imageview里的图片 139 4.24 动态旋转图片 ...

    Android 完整的通讯录项目源码

    可进行快速检索,并可选择不同群组的联系人,展示群组的效果是照着人人网菜单的效果改变的信息模块显示了信息列表(其中包含电话、数量、时间、信息预览),对话列表,新建短信的功能(这个功能的添加联系人模块费了...

    Android应用程序启动白屏黑屏优化

    大家最为熟悉的拨号盘或者短信应用,在第一次启动的时候,会有一定时间的白屏现象,其实,默认的情况下,android程序启动时,都会有一个黑屏或者白屏闪过的现象,在白屏或者黑屏过后才显示真正的应用界面。...

    Google Android SDK开发范例大全(第3版) 1/5

    4.19 在Activity里显示列表 4.20 以动态列表配置选项 4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭...

    Google Android SDK开发范例大全(第3版) 4/5

    4.19 在Activity里显示列表 4.20 以动态列表配置选项 4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭...

    Google Android SDK开发范例大全(第3版) 3/5

    4.19 在Activity里显示列表 4.20 以动态列表配置选项 4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭...

Global site tag (gtag.js) - Google Analytics