项目中有聊天功能,老板让聊天的时间转换成和 QQ 的聊天时间一样的格式,

研究了一下,来分析下 QQ 的聊天格式时间

代码:

会话列表显示的时间 如需转成24小时制,需要使用 HH

//时间显示内容
-(NSString *)getDateDisplayString:(long long) miliSeconds{
NSLog(@"-时间戳---%lld_----",miliSeconds); NSTimeInterval tempMilli = miliSeconds;
NSTimeInterval seconds = tempMilli/1000.0;
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:seconds]; NSCalendar *calendar = [ NSCalendar currentCalendar ];
int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;
NSDateComponents *nowCmps = [calendar components:unit fromDate:[ NSDate date ]];
NSDateComponents *myCmps = [calendar components:unit fromDate:myDate]; NSDateFormatter *dateFmt = [[NSDateFormatter alloc ] init ]; //2. 指定日历对象,要去取日期对象的那些部分.
NSDateComponents *comp = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday fromDate:myDate]; if (nowCmps.year != myCmps.year) {
dateFmt.dateFormat = @"yyyy-MM-dd hh:mm";
} else {
if (nowCmps.day==myCmps.day) {
dateFmt.AMSymbol = @"上午";
dateFmt.PMSymbol = @"下午";
dateFmt.dateFormat = @"aaa hh:mm"; } else if((nowCmps.day-myCmps.day)==) {
dateFmt.dateFormat = @"昨天";
} else {
if ((nowCmps.day-myCmps.day) <=) {
switch (comp.weekday) {
case :
dateFmt.dateFormat = @"星期日";
break;
case :
dateFmt.dateFormat = @"星期一";
break;
case :
dateFmt.dateFormat = @"星期二";
break;
case :
dateFmt.dateFormat = @"星期三";
break;
case :
dateFmt.dateFormat = @"星期四";
break;
case :
dateFmt.dateFormat = @"星期五";
break;
case :
dateFmt.dateFormat = @"星期六";
break;
default:
break;
}
}else {
dateFmt.dateFormat = @"MM-dd hh:mm";
}
}
}
return [dateFmt stringFromDate:myDate];
}

聊天列表显示时间:

//时间显示内容
-(NSString *)getDateDisplayString:(long long) miliSeconds{
NSLog(@"-时间戳---%lld_----",miliSeconds); NSTimeInterval tempMilli = miliSeconds;
NSTimeInterval seconds = tempMilli/1000.0;
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:seconds]; NSCalendar *calendar = [ NSCalendar currentCalendar ];
int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;
NSDateComponents *nowCmps = [calendar components:unit fromDate:[ NSDate date ]];
NSDateComponents *myCmps = [calendar components:unit fromDate:myDate]; NSDateFormatter *dateFmt = [[NSDateFormatter alloc ] init ]; //2. 指定日历对象,要去取日期对象的那些部分.
NSDateComponents *comp = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday fromDate:myDate]; if (nowCmps.year != myCmps.year) {
dateFmt.dateFormat = @"yyyy-MM-dd hh:mm";
} else {
if (nowCmps.day==myCmps.day) {
dateFmt.AMSymbol = @"上午";
dateFmt.PMSymbol = @"下午";
dateFmt.dateFormat = @"aaa hh:mm"; } else if((nowCmps.day-myCmps.day)==) {
dateFmt.AMSymbol = @"上午";
dateFmt.PMSymbol = @"下午";
dateFmt.dateFormat = @"昨天 aaahh:mm"; } else {
if ((nowCmps.day-myCmps.day) <=) { dateFmt.AMSymbol = @"上午";
dateFmt.PMSymbol = @"下午"; switch (comp.weekday) {
case :
dateFmt.dateFormat = @"星期日 aaahh:mm";
break;
case :
dateFmt.dateFormat = @"星期一 aaahh:mm";
break;
case :
dateFmt.dateFormat = @"星期二 aaahh:mm";
break;
case :
dateFmt.dateFormat = @"星期三 aaahh:mm";
break;
case :
dateFmt.dateFormat = @"星期四 aaahh:mm";
break;
case :
dateFmt.dateFormat = @"星期五 aaahh:mm";
break;
case :
dateFmt.dateFormat = @"星期六 aaahh:mm";
break;
default:
break;
}
}else {
dateFmt.dateFormat = @"MM-dd hh:mm";
}
}
}
return [dateFmt stringFromDate:myDate];
}

iOS 时间戳转成今天,上午,下午,星期几,几月几日,某年某月某日的更多相关文章

  1. 时间操作(JavaScript版)—页面显示格式:年月日 上午下午 时分秒 星期

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35222531 <!DOCTYPE ...

  2. Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间

    ylbtech-Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间 1.返回顶部 1. Java 实例 - 时间戳转换成时间  Java 实例 以下实例演示 ...

  3. 时间戳转换成日期的js

    在项目开发过程中,我们常常需要把时间戳转换成日期.下面这个是我一直使用的js方法,希望能帮助到有需要的朋友.大家如果有更好的方法,请多多指教! js代码如下: //时间戳转换成日期 function ...

  4. Swift3.0 iOS获取当前时间 - 年月日时分秒星期

    Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...

  5. unix时间戳转换成标准时间(c#)

    //---unix时间戳转换成标准时间(c#)---//     /*     string timeStamp = "1144821796";     DateTime dtSt ...

  6. C#将unix时间戳转换成.net的DateTime类型的代码

    下面的内容是关于C#将unix时间戳转换成.net的DateTime类型的内容. DateTime epoch = new DateTime(1970,1,1,0,0,0,0, DateTimeKin ...

  7. vue filters 时间戳转化成时间格式

    vue filters 时间戳转化成时间格式 filters: { formatDate: function (time) { var re = /-?\d+/ var m = re.exec(tim ...

  8. SQLAlchemy中时间格式化及将时间戳转成对应时间的方法-mysql

    https://blog.csdn.net/guoqianqian5812/article/details/80175866 方法很简答,都是借助于mysql数据库提供的函数将时间格式化方法 func ...

  9. js中时间戳转换成时间格式

    js中时间戳转换成时间格式, // 时间戳转换成时间格式 var formatDate = function(date){ date = new Date(date); var y=date.getF ...

随机推荐

  1. MAC的开机启动

    之前了解到MAC下的开机启动和定时自动运行不再沿用cron,而是有自己的launchctl:把启动文件放在/Library/LaunchDaemon/xxx.plist,里面可以记录运行的时间间隔.工 ...

  2. MySQL的ODBC安装错误问题!

    MySQL的ODBC安装时候可能会出错,主要原因是缺少VC支持库,需要2010版本的VC支持库!!X86和X64分别对应MySQL对应的ODBC,不能安装一个两个都搞定,如果需要安装两个ODBC驱动, ...

  3. C,C++网络编程学习简明指南

    C,C++网络编程学习简明指南 1. 扎实的C,C++基础知识 参考资料<C程序设计>,<C++ primer>. 2. TCP/IP协议 经典书是:W.Richard Ste ...

  4. web安全问题-csrf

    web安全问题 csrf <script> document.write(` <form name="commentForm" target="csrf ...

  5. (Python OpenGL)【4】Uniform变量 PyOpenGL

    (Python OpenGL) 原文:http://ogldev.atspace.co.uk/www/tutorial05/tutorial05.html(英文) __author__ = " ...

  6. 10.9 guz模拟题题解

    感谢@guz 顾z的题题解 考试共三道题,其中 第一题help共10个测试点,时间限制为 1000ms,空间限制为 256MB. 第二题escape共20个测试点,时间限制为1000ms2000ms, ...

  7. 统计元音(stringstream的-应用)

    Problem Description 统计每个元音字母在字符串中出现的次数.   Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串.   Output ...

  8. P2421 [NOI2002]荒岛野人

    传送门 答案不大于 $10^6$,考虑枚举答案 对于枚举的 ans,必须满足对于任意 i,j(i≠j) 都有 使式子$c_i+kp_i \equiv c_j+kp_j\ (mod\ ans)$成立的最 ...

  9. 三个键print scroll、pause

    上班族或是办公室白领每天都几乎跟键盘打交道, 那么键盘上的PrtSc SysRq(print screen).Scroll Lock.se Break(pause break).numlock等有何作 ...

  10. 利用RELK进行日志收集

    利用RELK进行日志收集 发布时间:April 3, 2018 // 分类:运维工作,开发笔记,python // No Comments 前不久在做应急的总是遇到要求对日志进行分析溯源,当时就想到如 ...