//当前时间格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss
+ (NSString *)getCurrentDataWithDateFormate:(NSString *)formate
{
NSDate *now = [NSDate date];
return [self dateFormattingWithDate:now toFormate:formate];
} //任意NSDate格式化
+ (NSString *)dateFormattingWithDate:(NSDate *)date toFormate:(NSString *)formate
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:formate];
return [formatter stringFromDate:date];
} //获取当天0点时间
+ (NSDate *)returnToDay0Clock
{
NSDate *now = [NSDate date];
NSCalendar *calender = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *dateComponent = [calender components:unitFlags fromDate:now];
int hour = (int)[dateComponent hour];
int minute = (int)[dateComponent minute];
int second = (int)[dateComponent second];
//当前时分秒:hour,minute,second
//返回当前时间(hour * 3600 + minute * 60 + second)之前的时间,即为今天凌晨0点
NSDate *nowDay = [NSDate dateWithTimeIntervalSinceNow: - (hour * + minute * + second)];
long long inter = [nowDay timeIntervalSince1970] * ;
NSDate *newDate = [NSDate dateWithTimeIntervalSince1970:inter / ];
return newDate;
} //获取当天24点时间
+ (NSDate *)returnToDay24Clock
{
NSDate *now = [NSDate date];
NSCalendar *calender = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *dateComponent = [calender components:unitFlags fromDate:now];
int hour = (int)[dateComponent hour];
int minute = (int)[dateComponent minute];
int second = (int)[dateComponent second];
//一天是60分钟 * 60秒 * 24小时 = 86400秒
NSDate *nextDay = [NSDate dateWithTimeIntervalSinceNow: - (hour * + minute * + second) + ];
return nextDay;
} //获取当前秒数
+ (long long)getCurrentDateSecond
{
return [[NSDate date] timeIntervalSince1970];
} //NSDate转秒
+ (long long)dateTosecond:(NSDate *)date
{
return [date timeIntervalSince1970];
} //秒转NSDate
+ (NSDate *)secondToDate:(long long)second
{
return [NSDate dateWithTimeIntervalSince1970:second];
} //是否是12小时制; YES:12小时制 / NO:24小时制
+ (BOOL)is12HourSystem
{
NSString *formatStringForHour = [NSDateFormatter dateFormatFromTemplate:@"j" options: locale:[NSLocale autoupdatingCurrentLocale]];
NSRange contains = [formatStringForHour rangeOfString:@"a"];
BOOL is12HourSystem = contains.location != NSNotFound;
return is12HourSystem;
} //朋友圈/聊天 时间显示样式
+ (NSString *)dateDisplayResult:(long long)secondCount
{
NSDate *date = [self secondToDate:secondCount];
NSCalendar *calender = [NSCalendar currentCalendar];
//判断是否是今天
if ([calender isDateInToday:date]) { long long dateSecondCount = [[NSDate date] timeIntervalSinceDate:date];
if (dateSecondCount < ) {
return @"刚刚";
}
if (dateSecondCount < ( * )) {
return [NSString stringWithFormat:@"%d分钟前",(int)(dateSecondCount / )];
}
return [NSString stringWithFormat:@"%d小时前",(int)(dateSecondCount / ( * ))];
} //判断是否是昨天
NSString *formatterString = @" HH:mm";
if ([calender isDateInYesterday:date]) {
formatterString = [@"昨天" stringByAppendingString:formatterString];
} else {
//判断是否是一年内
formatterString = [@"MM-dd" stringByAppendingString:formatterString];
//判断是否值一年之前
NSDateComponents *component = [calender components:NSCalendarUnitYear fromDate:date toDate:[NSDate date] options:NSCalendarWrapComponents]; if (component.year >= ) {
formatterString = [@"YYYY-" stringByAppendingString:formatterString];
}
}
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:formatterString];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en"];
return [formatter stringFromDate:date];
} //比较两个NsDate对象的时间差
+ (CompareResult *)compareDateDifferenceDate1:(NSDate *)date1 date2:(NSDate *)date2
{
CompareResult *result = [[CompareResult alloc] init];
result.value = (fabs([date1 timeIntervalSinceDate:date2]));
result.trend = [date1 compare:date2];
return result;
}

iOS中NSDate常用转换操作整合的更多相关文章

  1. iOS中RGB颜色转换

    iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UI ...

  2. 大数据(5) - HDFS中的常用API操作

    一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...

  3. iOS 中捕获截屏操作

    转自:iOS知识小集 在iOS 7后,苹果提供了UIApplicationUserDidTakeScreenshotNotification通知来告诉App用户做了截屏操作.苹果的描述如下: // T ...

  4. python中 列表常用的操作

    列表可以装大量的数据,不限制数据类型,表示方式:[]:列表中的元素用逗号隔开. lst = [] #定义一个空列表 lst = ["Tanxu",18,"女", ...

  5. iOS中的场景转换机制的浅显分析

    目前Apple推荐的场景转换的方法有以下几个: 一般的跳转方法: presentViewController Discussion In a horizontally compact environm ...

  6. iOS中多线程常用的知识点

        1.pThread 跨平台的多线程技术 , 是IEEE制定的POSIX 表示可移植性操作系统接口的多线程计数,UNIX内核平台 Unix,Linux,Mac(小红帽) (windows上有可移 ...

  7. ios中的safari转换时间戳问题

    后台下发的时间格式如:2016-09-15 15:30:10:也没多想,直接用new Date('2016-09-15 15:30:10').getTime()获取时间戳:开发时候,电脑调试OK,当放 ...

  8. iOS中UITextField常用设置和方法

    //初始化textField并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]; // ...

  9. 【spark】常用转换操作:reduceByKey和groupByKey

    1.reduceByKey(func) 功能: 使用 func 函数合并具有相同键的值. 示例: val list = List("hadoop","spark" ...

随机推荐

  1. php+ajax+jquery 定时刷新页面数据

    testajax.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  2. 队列模拟题——pat1026. Table Tennis

    题意自己理解了,主要是两个队列维护,一个VIP队列,一个普通队列 搜集了一些坑(有些坑转自别的网站用于广大同学的测试之用) 普通人也有VIP的权益!!! 屌丝逆袭有木有!!! 920:52:00 10 ...

  3. 选择排序算法-python实现

    #-*- coding: UTF-8 -*- import numpy as np def SelectSort(a): for i in xrange(0,a.size): min = a[i] p ...

  4. Tomcat 8.5 架构分析

    官方文档:Apache Tomcat 8 Architecture 以下分析的是 Version 8.5. Tomcat 组件关系图 根据 Architecture Overview 绘制: Serv ...

  5. 【转】使用 JMeter 完成常用的压力测试

    本文介绍了 JMeter 相关的基本概念.并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web 服务器.数据库服务器和消息中间件,压力测试的方法.步骤以及注意事项.      ...

  6. 运维平台cmdb开发-day1

    序读项目由来 终极目标,运维平台.自动化.装机,监控,安装软件,部署基础服务,资产管理,之前是excel,现在是客户端自动获取,变更记录 后台管理 api 采集资产 四种模式agent 定时,每天执行 ...

  7. Php处理时间的函数

    1,字符串与时间: 例如 $time = strtotime("2007-3-5"); echo date("Y-m-d H:i:s",$time); 2,当前 ...

  8. small_vector

    folly/small_vector.h folly::small_vector<T,Int=1,...> is a sequence container that implements ...

  9. RefWorks

    RefWorks公司简介/RefWorks 编辑 RefWorks是美国剑桥信息集团的子公司,是ProQuest 的姊妹公司.该公司于2001年由参考文献管理领域的一些专家组建而成,并致力于为学术机构 ...

  10. C 语言 - 逻辑运算和短路求值

    逻辑运算符: 运算符 含义 优先级 ! 逻辑非 高 && 逻辑与 中 || 逻辑或 低 举例: !a:如果 a 为真,!a 为假:如果 a 为 假,!a 为真 a && ...