iOS 时间戳转成今天,上午,下午,星期几,几月几日,某年某月某日
项目中有聊天功能,老板让聊天的时间转换成和 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 时间戳转成今天,上午,下午,星期几,几月几日,某年某月某日的更多相关文章
- 时间操作(JavaScript版)—页面显示格式:年月日 上午下午 时分秒 星期
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35222531 <!DOCTYPE ...
- Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间
ylbtech-Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间 1.返回顶部 1. Java 实例 - 时间戳转换成时间 Java 实例 以下实例演示 ...
- 时间戳转换成日期的js
在项目开发过程中,我们常常需要把时间戳转换成日期.下面这个是我一直使用的js方法,希望能帮助到有需要的朋友.大家如果有更好的方法,请多多指教! js代码如下: //时间戳转换成日期 function ...
- Swift3.0 iOS获取当前时间 - 年月日时分秒星期
Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...
- unix时间戳转换成标准时间(c#)
//---unix时间戳转换成标准时间(c#)---// /* string timeStamp = "1144821796"; DateTime dtSt ...
- C#将unix时间戳转换成.net的DateTime类型的代码
下面的内容是关于C#将unix时间戳转换成.net的DateTime类型的内容. DateTime epoch = new DateTime(1970,1,1,0,0,0,0, DateTimeKin ...
- vue filters 时间戳转化成时间格式
vue filters 时间戳转化成时间格式 filters: { formatDate: function (time) { var re = /-?\d+/ var m = re.exec(tim ...
- SQLAlchemy中时间格式化及将时间戳转成对应时间的方法-mysql
https://blog.csdn.net/guoqianqian5812/article/details/80175866 方法很简答,都是借助于mysql数据库提供的函数将时间格式化方法 func ...
- js中时间戳转换成时间格式
js中时间戳转换成时间格式, // 时间戳转换成时间格式 var formatDate = function(date){ date = new Date(date); var y=date.getF ...
随机推荐
- C++ 标准库智能指针
整理一下c++中shared_ptr,weak_ptr,unique_ptr三种指针的使用案例和注意事项,让程序资源更加案例,在标准库中,需要包含<memory>,在boost库中, 一. ...
- 在docker容器中安装vim命令进行编辑文件
首先执行: 执行apt-get update, 然后再次执行apt-get install vim即可成功安装vim. 然后我们就可以使用vim编辑 如果不进行更新就会报错: 此时会报出bash: v ...
- UVA1714 Keyboarding
传送门 坑很多的一题 这里要感谢crk大佬提前帮我把所有的坑都踩了一遍...233 讲一下题目的意思: 给你一个神奇的 r*c 的键盘 (r,c<=50) 上面有大写的字母,数字,' - '号 ...
- Hdu 5862 Counting Intersections(有n条线段,每一条线段都是平行于x轴或者y轴,问有多少个交点+树状数组区间求和单点跟新)
传送门:Hdu 5862 Counting Intersections 题意:有n条线段,每一条线段都是平行于x轴或者y轴,问有多少个交点 分析: 基本的操作流程是:先将所有的线段按照横树坐标x按小的 ...
- UVA11082 行列模型
行列二分图模型,行指向列即表示权重w[i][j] 避免零流的方法就是使下界为1 #include<bits/stdc++.h> #define rep(i,j,k) for(int i = ...
- 导入json文件报错,TypeError expected string or buffer
导入json文件报错,TypeError expected string or buffer 原因:用字符串赋值后,python会把双引号转换为单引号 import json data = [{&qu ...
- 6-----BBS论坛
BBS论坛(六) 6.1.优化json数据的返回 (1)新建utils/restful.py # utils/restful.py from flask import jsonify class Ht ...
- python3.7安装Scrapy
环境:windows 7. 安装过程中遇到的问题 1.error: Unable to find vcvarsall.bat 2.1083: Cannot open include file: 'ba ...
- Microsoft使用技巧
1.拍摄屏幕内容的截图 按 Win + Shift + S 以打开截图栏,然后将光标拖动到要捕获的区域. 截图区域将保存到剪贴板. 2.使用键盘添加表情符号 随心随处表达自我. 按 Ctrl + Sh ...
- Mybatis学习笔记10 - 动态sql之if判断
示例代码: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; import java.util.List; public ...