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 ...
随机推荐
- Use Vim as a Python IDE
Use Vim as a Python IDE I love vim and often use it to write Python code. Here are some useful plugi ...
- 数据库 first
数据库原理 .SQL(DDL.DML) 字符串操作 .数值操作 .日期操作 .空值操作 SQL(基础查询) .SQL(关联查询) SQL(高级查询) 子查询 视图.序列.索引 .约束
- Pycharm新手教程,只需要看这篇就够了
pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版 ...
- 调停者模式Mediator(中介者模式)详解
原文链接:https://www.cnblogs.com/java-my-life/archive/2012/06/20/2554024.html 在阎宏博士的<JAVA与模式>一书中开头 ...
- Python循环加强版——列表生成式
记得我们在其他语言中都学到过循环,尤其是对for循环是再熟悉不过了 比如我有一个数组 a[10]={1,2,3,4,5,6,7,8,9,10} 下面需要依次循环打印出来,C语言首先想到的是 for( ...
- 9、OpenCV Python 边缘保留滤波
__author__ = "WSX" import cv2 as cv import numpy as np # 边缘保留滤波 十分重要(美颜的核心) # 高斯双边模糊(考虑到了像 ...
- zabbix监控nginx进程
确认nginx有没有安装模块 然后在主站点下添加(二级站点) location /NginxStatus { stub_status on; access_log off; allow 127.0.0 ...
- for别名
name:for(int i =0 ;i< a.length;i++){ System.out.println(i); for(int j =0;j<i;j++){ continue na ...
- pytorch搭建网络,保存参数,恢复参数
这是看过莫凡python的学习笔记. 搭建网络,两种方式 (1)建立Sequential对象 import torch net = torch.nn.Sequential( torch.nn.Line ...
- CuteFTP文件列表按名称排序,有中文文件名时,软件死掉的解决办法
看到很多人的解决办法是切换到一个没有中文的文件夹,点击排序后,再切换回来,这个的确是可以解决问题,但是有些繁琐! 直接一步到位的解决办法是: 依次点击菜单:工具->全局选项->导航-> ...