当前位置: 首页 > news >正文

iOS开发中如何将后台返回的时间转换为常见字串

在iOS开发中,经常需要从后台数据中获取时间,但是此时后台返回的时间格式经常是一串类似"123456789"的数字,此数字是1970年开始截至到现在的秒数,此时我们需要将其转换为可以用的格式.

模型中我定义了c_time属性,通过重写c_time的get方法中进行格式的转换.

- (NSString *)c_time{
    // 1.创建时间格式化类
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // 2.设置时间的格式
    // yyyy-MM-dd HH:mm:ss
#warning 注意: 如果是真机开发, 除了设置格式以外,还需要设置该格式对应的区域, 否则格式化出来的时候可能为null
    formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";
    // 3.转换时间
    NSDate *creteDate = [formatter dateFromString:_c_time];
    
    // 4.处理时间
    if ([creteDate isThisYear]) {
        // 今年
        if ([creteDate isToday]) {
            // 今天
            NSDateComponents *cmps = [creteDate deltaWithNow];
            
            if (cmps.hour >= 1) {
                formatter.dateFormat = [NSString stringWithFormat:@"%ld小时前", (long)cmps.hour];
                return [formatter stringFromDate:creteDate];
            }else if (cmps.minute >= 1)
            {
                formatter.dateFormat = [NSString stringWithFormat:@"%ld分钟前", (long)cmps.minute];
                return [formatter stringFromDate:creteDate];
            }else
            {
                return @"刚刚";
            }
            
        }else if ([creteDate isYesterday])
        {
            // 昨天
            formatter.dateFormat = @"昨天 HH时mm分";
            return [formatter stringFromDate:creteDate];
        }else
        {
            // 其他天
            formatter.dateFormat = @"MM月dd日 HH时mm分";
            return [formatter stringFromDate:creteDate];
        }
    }else
    {
        // 非今年
        formatter.dateFormat = @"yyyy年MM月dd日 HH时mm分";
        return [formatter stringFromDate:creteDate];
    }
    
    return _c_time;
}

 

转载于:https://www.cnblogs.com/shaohuaios/p/4125078.html

相关文章:

  • 全驱动编程器引脚驱动图
  • 事务的操作
  • [转].net中SessionState相关配置
  • 分享Kali Linux 2016.2第50周镜像文件
  • 静态缓存和动态缓存
  • 编解码-java序列化
  • 富文本控件
  • RAID 详解
  • magento 重写controller、model、block
  • JS for循环 闭包
  • iOS开发UI篇—CAlayer层的属性(转摘)
  • 微软职位内部推荐-Sr SDE
  • 1 - Static Template
  • java jar bat 运行
  • 快递接口——调用分析对比
  • [译]Python中的类属性与实例属性的区别
  • [译]如何构建服务器端web组件,为何要构建?
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • emacs初体验
  • JavaScript 奇技淫巧
  • JavaWeb(学习笔记二)
  • java正则表式的使用
  • JS笔记四:作用域、变量(函数)提升
  • Material Design
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • MySQL用户中的%到底包不包括localhost?
  • python学习笔记 - ThreadLocal
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 《天龙八部3D》Unity技术方案揭秘
  • MPAndroidChart 教程:Y轴 YAxis
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #{} 和 ${}区别
  • #define用法
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (BFS)hdoj2377-Bus Pass
  • (C#)一个最简单的链表类
  • (分布式缓存)Redis哨兵
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Google的Objective-C编码规范
  • (转)nsfocus-绿盟科技笔试题目
  • (转)四层和七层负载均衡的区别
  • ./configure,make,make install的作用
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 依赖注入和配置系统
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .net反混淆脱壳工具de4dot的使用
  • ;号自动换行
  • [C++]unordered系列关联式容器