iOS开发 字符串转化为NSDate格式比较时间

求助 "2015/10/15 9:00:00" 这是一个网络解析下来的时间我想将她转化为NSDate格式,然后和当前时间进行比较,请问我应该怎么做?在线等

2个回答

#define kShortTimeFormat @"yyyy-MM-dd"
//输入的日期字符串形如:@"1992-05-21 13:08:08"

  • (NSDate *)dateFromString:(NSString *)dateString format:(NSString *)format
    {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateFormat: format];
    dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

    NSDate *destDate= [dateFormatter dateFromString:dateString];

    return destDate;
    }
    //计算两个NSDate相差多少天

  • (int)daysAwayFrom:(NSDate *)dateFirst dateSecond:(NSDate *)dateSecond {
    double timezoneFix = [NSTimeZone localTimeZone].secondsFromGMT;
    return (int)(([dateFirst timeIntervalSince1970] + timezoneFix)/(24*3600)) - (int)(([dateSecond timeIntervalSince1970] + timezoneFix)/(24*3600));
    }
    //比较两个NSString的时间(datefirst 比datesecond 早)

  • (BOOL)daysAwayFromString:(NSString *)dateFirst dateSecondString:(NSString *)dateSecond
    {
    NSDate *firstDate = [self dateFromString:dateFirst format:kShortTimeFormat];
    NSDate *secondDate = [self dateFromString:dateSecond format:kShortTimeFormat];
    if([self daysAwayFrom:firstDate dateSecond:secondDate] < 0){
    return YES;
    }
    return NO;
    }

NSString *time = @"2015/10/15 9:00:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [formatter dateFromString:time];

iOS_greenHand
iOS_greenHand 回复LUCKEYMAN: 已更改,谢谢
4 年多之前 回复
u013346305
LUCKEYMAN 回复iOS_greenHand: 我少写了一个ss,你补上的是对的,时间为1点,是因为NSDate默认是世界标准时,时区转换一下就可以
4 年多之前 回复
iOS_greenHand
iOS_greenHand 我爸您的[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];改成了[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];但是转化之后9:00:))变成了01:00:00这是什么原因?请问如何改正
4 年多之前 回复
iOS_greenHand
iOS_greenHand 您好,按照您的方法最后得到的date为空....
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何转换包含am和pm的字符串到NSDate?

我需要将NSString转换为NSDate,但是用下面的代码实现后, **只有用户的设备时间不是24小时制时才有效** 。 NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; NSString *aTime = @"2/11/2013 12:00:00 AM"; NSDate *aDate = [formatter dateFromString:aTime]; 如果设备是24小时制的,aDate会返回空值,应该怎么解决?谢谢

NSString转换到NSDate时日期不对

代码: NSString * dateStr = @"7/25/2013 12:00:00 AM"; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; NSDate *date = [dateFormat dateFromString:dateStr]; NSLog(@"dateStr : %@ , date : %@",dateStr,date); 但是转换的日期会比实际日期差一天: dateStr : 7/25/2013 12:00:00 AM , date : 2013-07-24 18:30:00 +0000

转化NSDate的NSDateFormatter问题

NSDateFormatter提供的默认日期: 2001-01-01 00:00:00 +0000 我要输出这样的格式: January, 01 2013 04:00:00 代码如下: NSDateFormatter *formatter=[[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MMMM, dd yyyy HH:mm:ss"]; NSDate *startDt=[_calendarDetailsDict objectForKey:@"dtStart"]; NSDate *endDt=[_calendarDetailsDict objectForKey:@"dtEnd"]; NSString *str=[formatter stringFromDate:startDt]; NSString *str1=[formatter stringFromDate:endDt];

iOS开发 NSDate周数转换问题

是这样的,项目的接口需要的参数为:yyyyww(201505:2015年第05周) 就有了以下代码: ``` NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init]; [dateFormatter2 setDateFormat:@"yyyyww"]; NSDate *sss = [dateFormatter dateFromString:@"2015-12-30"]; NSString *aaa = [dateFormatter2 stringFromDate:sss]; ``` 然后问题就来了, ![图片说明](https://img-ask.csdn.net/upload/201601/06/1452081297_303774.png) 其他时间都没有问题 唯独2015-12-26之后出了问题装换后为201501,第一周?!?!? 貌似他默认一年的最大周数为52?!? 这怎么解决?正常情况下2015-12-30为2015年第53周

将NSDate转换为NSString时间问题

NSDate如下: 2013-03-14 17:35:00 +0000 用下面代码将它转换成NSString时: NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"]; [formatter stringFromDate:item.startdate]; 结果是这样: 03/14/2013 05:35:00 怎么样修复?

在NSDateComponents中判断上午还是下午

使用NSDateComponents的时候怎么知道是上午还是下午的?是24小时制吗? NSDate *morningEnd = [NSDate date]; NSDateComponents *components1 = [gregorian components:NSUIntegerMax fromDate:morningEnd]; [components1 setHour:11]; [components1 setMinute:59]; 如何判定我是设置的上午11:59还是下午11.59?

NSDate转换结果失误

将下面的日期字符串转换成其他格式。操作如下: NSLog(@"datestring is NOW %@",_dayObject.p_date); NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"YYYY-MM-DD"]; NSDate *date = [dateFormat dateFromString:_dayObject.p_date]; NSLog(@"date transformed %@",date); [dateFormat setDateFormat:@"EEEE, dd/MM/YYYY"]; [dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; NSString *dateStr = [dateFormat stringFromDate:date]; NSLog(@"datestring is AFTER %@",dateStr); 但是在NSLog中得到: 2013-04-18 08:43:36.181 mosaqua2[9629:907] datestring is NOW 2013-05-04 2013-04-18 08:43:36.184 mosaqua2[9629:907] date transformed 2013-01-03 23:00:00 +0000 2013-04-18 08:43:36.184 mosaqua2[9629:907] datestring is AFTER donderdag, 03/01/2013 正确的格式是: **Saterday, 04/05/2013** 谢谢您的解答。

特定日期时NSDate是空值

在获取特定时期时得到空字符。 比如`13/03/2013`。 代码: NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; NSDate *myDate = [formatter dateFromString:@"12/03/2013 5:47:00 AM"]; NSDate *myDate1 = [formatter dateFromString:@"13/03/2013 6:25:48 AM"]; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; [df setDateFormat:@"yyyy-MM-dd HH:mm"]; NSString *datestr = [df stringFromDate:myDate]; NSString *datestr1 = [df stringFromDate:myDate1]; NSLog(@"date object %@,%@",datestr,datestr1);

objective转换日期字符串

字符串如下: Sun, 16 Dec 2012 15:30:22 +0000 我想转化成NSDate,试过下面的代码,结果返回null值 NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"]; NSDate *date = [[NSDate alloc] init]; date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"]; NSLog(@"date: %@", date); 请高手指教一下,不胜感激。

转换NSString到NSDate

转换两个string值到NSDate,一个日期,一个时间。日期转换正确,但是时间总是转错。并且xcode给出log错误信息。实现转换日期的代码如下,不知道时间怎么转换才对。 NSDate * date; //Assume dateString is populated and of format NSString * dateString =@"2011-11-21 11:20"; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; NSString *dateString =[NSString stringWithFormat:@"%@ %@", socialEvent.SocialEventsDC_EventDate,socialEvent.SocialEventsDC_EventStartTime]; NSLog(@"%@ %@",socialEvent.SocialEventsDC_EventDate,socialEvent.SocialEventsDC_EventStartTime); [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm a"]; if (dateString != nil) { date = [dateFormatter dateFromString:dateString]; // [date release]; } NSLog(@"%@",date); log信息: 2013-04-25 10:45:04.417 BNI UK & Ire[450:5203] 01/20/2015 11:00 PM 2013-04-25 10:45:09.679 BNI UK & Ire[450:5203] 2015-01-20 07:00:00 +0000 获得的时间总是7:00:00。正确的结果应该是11:00。

ios:转换string到data

日期:"Mar 13, 2013 05:30pm"。我想转换成NSDate对象。 代码如下,但是失败了。 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MMM:dd, YYYY hh:mm:aa"]; date=[dateFormatter dateFromString:dateString];

ios开发中获得的日期不对

我已经试了很多方法,但是获得的日期都不是当期日期。这是现在的代码: NSDateFormatter *tempFormatter = [[NSDateFormatter alloc]init]; [tempFormatter setDateFormat:@"dd-MM-yyy"]; NSDate *currentDate = [NSDate date]; NSDate *fromDate = [NSString stringWithFormat:@"%@",[tempFormatter stringFromDate:currentDate]]; NSLog(@"currentDate %@", fromDate); NSDate *toDate = [NSString stringWithFormat:@"%@",[tempFormatter stringFromDate:datePicker.date]]; NSLog(@"toDate %@", toDate); NSTimeInterval interval = [toDate timeIntervalSinceDate:fromDate]; double leftDays = interval/86400; NSLog(@"Total interval Between::%g",leftDays); 不知道错误在哪儿了,谢谢帮忙。

NSDate获取当前年份是不是闰年

在NSDate中获取当前年份,如何判断是不是闰年? 是不是可以通过计算天数判断? 谢谢

iOS 计算起始时间和终止时间的差

简单的就是说 a = 终止 - 起始 求大神 帮忙解答, 求代码演示; 我是这样算的 - (void)viewDidAppear:(BOOL)animated { NSDateFormatter *formatter =[[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd-HH-mm-ss"]; self.currentTime = [formatter stringFromDate:[NSDate date]]; NSLog(@"DATE = %@", [NSDate date]); NSLog(@"ooooo%@", self.currentTime); } - (void)viewWillDisappear:(BOOL)animated { NSDateFormatter *date=[[NSDateFormatter alloc] init]; [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *currentEndTime = [date stringFromDate:[NSDate date]]; NSCalendar *cal=[NSCalendar currentCalendar]; unsigned int unitFlags= NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit; NSDateComponents *d = [cal components:unitFlags fromDate:self.currentTime toDate:currentEndTime options:0]; NSLog(@"%d天%d小时%d分钟%d秒",[d day],[d hour],[d minute],[d second]); } 打印 015-04-27 13:47:36.082 H_J_4[30420:576015] -[__NSCFString timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x7fd6c144ebd0 (lldb)

修改NSdate对象的年,月和日

在iPhone应用中,有开始事件的日期,比如`2013-05-17 15:00:12 +0000`。我想要修改2013-05-7为当天的日期,其余的一样,应该怎么实现? 谢谢

如何帖子和信息的时间转换为NSDate

如果执行`requestForGrpahPath:@"me/inbox`,然后就会这样: "data": [ { "id": "XXXXXXXXXXXXXXXXX", "from": { "name": "XXXXXXXXXXXX", "id": "XXXXXXXXXXXXXXX" }, "message": "yeup!", "created_time": "2012-12-03T10:28:21+0000" //将此时间转换为NSdate }, `

android中像IOS的NSDate timeIntervalSinceNow]效果一样的?

在IOS中的代码: NSDate *startDateX = [NSDate date]; // 自定义操作 NSLog(@"Time difference: %f", -[startDateX timeIntervalSinceNow]); 然后输出: Time difference: 15.009682 如果在android中怎么实现相同的功能?

从string中获取NSDate

有一个日期字符串,转换成NSDate格式,然后和当前日期比较。我试着运行代码之后得到的是空值。 我写的代码: -(BOOL)checkTime{ //create an instance of the database oject DataBase * dataBase = [[DataBase alloc] init]; //get the times NSMutableArray *times = [dataBase allDataFrom:@"timings"]; //set date time to string and refresh time to float. NSString *dateStr = times[1]; float refreshTime = [times[2] floatValue]; // Convert string to date object NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date = [dateFormat dateFromString:dateStr]; //get the time now NSDate* timeNow = [NSDate date]; NSLog(@"dateStr: %@",dateStr); NSLog(@"DataBase Date: %@",date); NSLog(@"Current Date: %@",timeNow); NSLog(@"Time until refresh. (seconds): %f", refreshTime); // If date is greater than refresh then update the data if ([timeNow timeIntervalSinceDate:date] > refreshTime) { NSLog(@"Data Needs to be checked."); return YES; }else{ NSLog(@"Data is fresh."); return NO; } } 下面是获取到全部的值: dateStr: 2013/02/26 12:39:28 DataBase Date: (null) Current Date: 2013-02-26 12:57:49 +0000 Time until refresh. (seconds): 30.000000 Data is fresh. 不知道语法出什么错了呢?

sqlite存进一个NSDate会自动转为一个时间戳

为什么SELECT * FROM Table WHERE createdTime >= '2015-06-26 10:00:16 +0000'查询不出数据

程序员的兼职技能课

程序员的兼职技能课

为linux系统设计一个简单的二级文件系统

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条)

CCNA+HCNA+wireshark抓包综合网工技能提升套餐

本套餐包含思科路由交换CCNA,部分CCNP核心,华为HCNA以及wireshark抓包等类容,旨在培养具有综合能力的网络工程师。

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

成年人用得到的6款资源网站!各个都是宝藏,绝对让你大饱眼福!

不管是学习还是工作,我们都需要一些资源帮助我们有效地解决实际问题。 很多人找资源只知道上百度,但是你们知道吗,有的资源是百度也搜索不出来的,那么今天小编就给大家介绍几款好用的资源网站,大家赶紧收入囊中吧! 1.网盘007 https://wangpan007.com/ 一款全能的资源搜索网站!只需要输入关键字,就能获得你想要的视频、音乐、压缩包等各种资源,网上...

矿车轴载荷计算方法的比较及选用

针对矿车轴的弯曲损坏,分析了固定式矿车车轴的受力,并对力叠加法以及当量负荷法2种计算方法进行了分析和比较,认为应采用当量负荷法进行车轴的设计计算。

Python数据清洗实战入门

Python数据清洗实战入门

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

Polar编码matlab程序

matlab实现的Polar codes源程序

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

Linux下聊天室实现(基于C)

在linux下的基于TCP/IP,采用socket通信的聊天室,实现进入聊天室,进行多人群聊,指定人进行私聊,群主管理员功能,颗进行禁言,提出群聊等操作。个人账号可修改昵称或者修改密码,还可进行找回密

一个较完整的Qt用户登录界面设计

一个较完整的Qt用户登录界面,稍微移植可用,用sqlite数据库存储用户名和密码,具有增加和删除用户的功能,开发环境为ubuntu16.04+Qt5.6.1,win7下程序也编译可用。贡献出来,共同学

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

【C语言】贪吃蛇游戏代码(Visual C++6.0实现)

本游戏代码参考《C语言项目开发全程实录(第二版)》第六章。代码已在Visual C++6.0环境下编译测试通过,可在VC++6.0编译器中导入工程编译运行查看效果,或者也可以直接运行Release或D

Android小项目——新闻APP(源码)

Android小项目——新闻APP(源码),一个很简单的可以练手的Android Demo Ps:下载之前可以先看一下这篇文章——https://blog.csdn.net/qq_34149526/a

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

2019 Python开发者日-培训

2019 Python开发者日-培训

2019 AI开发者大会

2019 AI开发者大会

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

C++语言基础视频教程

C++语言基础视频教程

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问