把时间戳转成聊天时间(上午 10:00  、  昨天 14:00 、 3月15日 15:00)

  1. +(NSString*)ChatingTime:(NSString *)timestring{
  2.  
  3. int timestamp= [timestring intValue];
  4.  
  5. // 创建日历对象
  6. NSCalendar *calendar = [NSCalendar currentCalendar];
  7.  
  8. // 获取当前时间
  9. NSDate *currentDate = [NSDate date];
  10.  
  11. // 获取当前时间的年、月、日。利用日历
  12. NSDateComponents *components = [calendar components:NSCalendarUnitYear| NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentDate];
  13. NSInteger currentYear = components.year;
  14. NSInteger currentMonth = components.month;
  15. NSInteger currentDay = components.day;
  16.  
  17. // 获取消息发送时间的年、月、日
  18. NSDate *msgDate = [NSDate dateWithTimeIntervalSince1970:timestamp];
  19. components = [calendar components:NSCalendarUnitYear| NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour fromDate:msgDate];
  20. CGFloat msgYear = components.year;
  21. CGFloat msgMonth = components.month;
  22. CGFloat msgDay = components.day;
  23. CGFloat msghours = components.hour;
  24. // 进行判断
  25. NSDateFormatter *dateFmt = [[NSDateFormatter alloc] init];
  26. if (currentYear == msgYear && currentMonth == msgMonth && currentDay == msgDay) {
  27. //今天
  28. if (msghours<) {
  29. dateFmt.dateFormat = @"上午 hh:mm";
  30. }else{
  31. dateFmt.dateFormat = @"下午 hh:mm";
  32. }
  33.  
  34. }else if (currentYear == msgYear && currentMonth == msgMonth && currentDay- == msgDay ){
  35. //昨天
  36. dateFmt.dateFormat = @"昨天 HH:mm";
  37. }else{
  38. //昨天以前
  39. dateFmt.dateFormat = @"MM-dd HH:mm";
  40. }
  41. // 返回处理后的结果
  42. return [dateFmt stringFromDate:msgDate];
  43.  
  44. }

iOS 根据时间戳计算聊天列表的时间(上午/下午)的更多相关文章

  1. iOS 百度地图计算两个点时间的距离

    最近在解项目bug,更新地位城市的时候有个错误,后来想在位置改变多少距离之后,再取更新位置,这个功能去年做过.但是又忘记了! 所以还是记录一下吧. 百度地图提供了一个方法: BMKMapPointFo ...

  2. iOS开发时间戳与时间NSDate,时区的转换,汉字与UTF8,16进制的转换

    http://blog.sina.com.cn/s/blog_68661bd80101njdo.html 标签: ios时间戳 ios开发时间戳 ios16进制转中文 ios开发utf8转中文 ios ...

  3. ios 关于时间戳与时间转化的笔记

    linux系统获取时间戳的方法:time() ; 时间戳转换成需要的时间格式: NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; [f ...

  4. iOS 即时视频和聊天(基于环信)

    先上效果图: 屏幕快照 2015-07-30 下午5.19.46.png 说说需求:开发一个可以进行即时视频聊天软件. 最近比较忙,考完试回到公司就要做这个即时通信demo.本来是打算用xmpp协议来 ...

  5. iOS开发之微信聊天页面实现

    在上篇博客(iOS开发之微信聊天工具栏的封装)中对微信聊天页面下方的工具栏进行了封装,本篇博客中就使用之前封装的工具栏来进行聊天页面的编写.在聊天页面中主要用到了TableView的知识,还有如何在俩 ...

  6. iOS数据存储之属性列表理解

    iOS数据存储之属性列表理解 数据存储简介 数据存储,即数据持久化,是指以何种方式保存应用程序的数据. 我的理解是,开发了一款应用之后,应用在内存中运行时会产生很多数据,这些数据在程序运行时和程序一起 ...

  7. iOS中XMPP简单聊天实现 好友和聊天

    版权声明本文由陈怀哲首发自简书:http://www.jianshu.com/users/9f2e536b78fd/latest_articles;微信公众号:陈怀哲(chenhuaizhe2016) ...

  8. 28.qt quick-ListView高仿微信好友列表和聊天列表

    1.视图模型介绍  在Qml中.常见的View视图有: ListView: 列表视图,视图中数据来自ListModel.XmlListModel或c++中继承自QAbstractItemModel或Q ...

  9. 中文 iOS/Mac 开发博客列表

    中文 iOS/Mac 开发博客列表 博客地址 RSS地址 OneV's Den http://onevcat.com/atom.xml 一只魔法师的工坊 http://blog.ibireme.com ...

随机推荐

  1. jquery append()与html()注意项

    项目中,涉及到有一部分js代码是从数据库中读取出来动态加载到一个<script>标签中的情况.使用到了jquery的append()和html()两个函数. 应用场景如下: 页面端,有一个 ...

  2. MySQL 数据库规范--调优篇(终结篇)

    前言 这篇是MySQL 数据库规范的最后一篇--调优篇,旨在提供我们发现系统性能变弱.MySQL系统参数调优,SQL脚本出现问题的精准定位与调优方法. 目录 1.MySQL 调优金字塔理论 2.MyS ...

  3. c# 打印 主板信息CPU信息

    Win32_Processor CPU 参数说明: AddressWidth --在32位操作系统,该值是32,在64位操作系统是64.Architecture --所使用的平台的处理器架构.Asse ...

  4. 第十二届湖南省赛 (B - 有向无环图 )(拓扑排序+思维)好题

    Bobo 有一个 n 个点,m 条边的有向无环图(即对于任意点 v,不存在从点 v 开始.点 v 结束的路径). 为了方便,点用 1,2,…,n 编号. 设 count(x,y) 表示点 x 到点 y ...

  5. Excel之批量改变特定字体颜色(转载)

    改变单元格内部分特定字符的颜色,如果批量操作,需要用宏处理, 如下例,将范围内 所有字母A 变成红色 操作步骤:右键点击工作表标签,查看代码,如下代码复制进去Private Sub CommandBu ...

  6. C++实现算法常用的STL---整理

    algorithm min(a,b)和max(a,b) #include<iostream> #include<algorithm> using namespace std; ...

  7. 【学习总结】Git学习-参考廖雪峰老师教程八-使用GitHub

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  8. Booth乘法

    先看一个例子,结合疑问看算法. 1.已知X=+0.0011 Y=-0.1011 求[XY]补 解:[x]补 =0.0011 , [-x]补 =1.1101,[y]补 =1.0101 部分积      ...

  9. linux虚拟机桥接网络配置

    版权声明:经验之谈,不知能否换包辣条,另,转载请注明出处. https://blog.csdn.net/zhezhebie/article/details/75035997 前言:我是最小化安装cen ...

  10. asp.net core发布到linux

    在发布到linux的过程中出现两个问题现在总结一下: 我的虚拟机是安装到本机上面的,所以,应该在虚拟机的设置里面设置端口映射.具体设置如下: 选择vm上方的编辑 在弹出的框中选择VMnet8,点击下方 ...