Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从NSDate解析时间

从NSDate解析时间
EN

Stack Overflow用户
提问于 2016-05-12 08:34:07
回答 3查看 187关注 0票数 0

我试图从一个看起来像@"2016-05-12T16:25:55.000Z"的字符串中获得时间。我试过这样的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat       = @"HH:mm";
formatter.timeZone         = [NSTimeZone systemTimeZone];

NSDate *serverDate = [formatter dateFromString:dateString];
NSString* time = [formatter stringFromDate:serverDate];
NSLog(@"Time: %@", time);

但是我的serverDate正在返回null。我不知道我做错了什么。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-12 08:45:01

当您从一个NSDate创建一个NSString时,日期格式必须完全匹配整个字符串。

但你的目标似乎是把时间当作一根线。所以只需得到子字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSString *time = [dateString substringWithRange:NSMakeRange(11, 5)];

当然,这不会以任何方式处理时区。如果您希望将原始字符串解析为NSDate,然后获得从该日期开始的时间,所有这些都需要进行时区调整,那么您需要两种日期格式。一个将原始字符串解析为一个NSDate,另一个解析第二个(您已经拥有的字符串),以生成具有所需输出的新字符串(本例中的时间)。

票数 2
EN

Stack Overflow用户

发布于 2016-05-12 08:50:42

可以将格式化程序的dateFormat属性设置为:@"yyyy-MM-dd'T'HH:mm:ssZ",然后使用NSDateComponents获取时间值。

票数 0
EN

Stack Overflow用户

发布于 2016-05-12 09:45:49

首先将您的日期转换为NSDate

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+ (NSDate *) convertDateToNSDateWithGivenFormat: (NSString *) dateStr Format:(NSString*) format
{
    NSDateFormatter *dateFormatterDate = nil;
    NSDate *dateonly = nil;

    if (dateFormatterDate == nil) {
        dateFormatterDate = [[NSDateFormatter alloc] init];
        [dateFormatterDate setDateFormat:format];
    }
    dateonly = [dateFormatterDate dateFromString:[NSString stringWithFormat:@"%@", dateStr]];

    return dateonly;
}

然后使用NSDate变量拆分日期和时间。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+ (NSString *) GetFormattedTimeStringForGivenDate:(NSDate *) date
{
    NSString *retStr = nil;
    NSDate *now = date;
    NSDateFormatter *dateFormatterDateOnly = nil;
    NSDateFormatter *dateFormatterTimeOnly = nil;

    if (dateFormatterDateOnly == nil) {
        dateFormatterDateOnly = [[NSDateFormatter alloc] init];
        [dateFormatterDateOnly setDateFormat:@"MM/dd/yyyy"];
    }
    if (dateFormatterTimeOnly == nil) {
        dateFormatterTimeOnly = [[NSDateFormatter alloc] init];
        [dateFormatterTimeOnly setDateFormat:@"hh:mm:ss:a"];
    }
    //if you need date use this
    //retStr  = [NSString stringWithFormat:@"%@", [dateFormatterDateOnly stringFromDate:now]];
    retStr  = [NSString stringWithFormat:@"%@", [dateFormatterTimeOnly stringFromDate:now]];
    return retStr;
}

举个例子。您可以根据需要更改格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   NSDate *myDt = [MyClass convertDateToNSDateWithGivenFormat: @"2016-05-12T16:25:55" Format:@"yyyy-MM-dd'T'HH:mm:ss"];
    NSString *str = [MyClass GetFormattedTimeForGivenDate:myDt];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37192714

复制
相关文章
处理日期时间NSDate
获取当前日期时间的代码如下: NSDate *dateToDay = [NSDate date]; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy-MM-DD HH:mm:ss"]; NSLocale *local = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; [df setLocale:loc
猿人谷
2018/01/17
6430
iOS_时间戳转化为日期TimeStamp转NSDate转NSString
//时间戳处理 NSInteger time = [self.album.updatedAt integerValue] / 1000; NSNumber *timer = [NSNumber numberWithInteger:time]; NSTimeInterval interval = [timer doubleValue]; NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval]; //设置日期格式 NSDateFormatt
mikimo
2022/07/20
2.2K0
iOS:获取 NSDate 的年
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109930.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
4170
NSDate相差8个小时问题
NSDate * date = [NSDate date]; NSLog(@"date:%@", date); NSDateFormatter * outputFormatter = [[NSDateFormatter alloc] init]; [outputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; NSTimeZone * timezone = [NSTimeZone timeZoneFo
rectinajh
2018/05/17
8540
使用Swift操作NSDate类型基础
  时间类型是我们在处理业务的时候使用非常频繁的一个数据类型。下面我们看一下时间NSDate的基本使用方法。
MJ.Zhou
2022/05/07
6590
使用Swift操作NSDate类型基础
NSDate 的一些操作
创建当前时间 NSDate *date = [NSDate date]; 从现在开始的24小时 NSTimeInterval a_day = 24*60*60; NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:a_day]; 根据已有日期创建日期 NSTimeInterval a_day = 24*60*60; NSDate *date = [NSDate date]; NS
代码伴一生
2021/09/22
4520
NSDate 的一些操作
创建当前时间 NSDate *date = [NSDate date]; 从现在开始的24小时 NSTimeInterval a_day = 24*60*60; NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:a_day]; 根据已有日期创建日期 NSTimeInterval a_day = 24*60*60; NSDate *date = [NSDate date]; NS
好派笔记
2021/10/31
4930
iOS NSDate计算之夏令时
公司有个邮件项目,其中Exchange日历需要大量的日期时间的计算。前两天客户反馈一个问题:循环日历修改单日后,生成的exception日期未生效,也就是说修改后的会议时间没有改动。正常来说这是个主流程功能,不太可能出现这样的问题,我们本地各种日志分析和造日历会议想要复现这个问题,徒劳无功。后来在查另一个完全不相干的问题时,查到了用户时区被改动导致日期错误问题,灵感乍现,连忙去试试之前用户反馈的日历周期在不同时区上的日历表现。果然,这次看到了不同。
Raindew
2022/03/24
1.2K0
iOS开发·NSDate日期基本操作方法
一、基本操作方法 1. 当前时间创建NSDate NSDate *myDate = [NSDate date]; NSLog(@"myDate = %@",myDate); 2. 从现在开始的24小时 NSTimeInterval secondsPerDay = 24*60*60; NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay]; NSLog(@"myDate = %@",t
陈满iOS
2018/09/10
1.1K0
SpringMVC 日期/时间 参数解析
Spring mvc 默认设置对日期和时间参数转换不是很理想,自带的CustomDateEditor 只能传入一个DateFormat,而我们知道SimpleDateFormat 又是线程不安全的,我们可以通过自定义一个PropertyEditorSupport的子类,用其他方式来实现日期格式的转换。少比比,直接上代码:
前Thoughtworks-杨焱
2021/12/07
8930
iOS----时间日期处理
时间日期处理 1.NSDateFormatter 日期格式化 ①可以把NSString 类型转为 NSDate类型 举例 把 "2015-08-23 19:46:14" 转为NSDate类型 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串) // y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒 formatter.date
用户1941540
2018/05/11
1K0
从时间这个概念说起
我们每个人都知道时间,也都在使用时间。同事之间要聚会了,会互相通知今晚七点不见不散,过了两小时,吃饱喝足了,聚会也就散了。“今晚七点”和“过了两小时”代表着日常使用时间的两个方面,时刻和持续时间。
哒呵呵
2021/11/30
2800
精进:从时间到读书
算是时间日志第46天的总结 现状 预感,绝大概率的预感,我会投身IT界,基于本身专业考虑。 预感,绝大概率的预感,我会坚持阅读和写作,尔后还衍生的文案策划,基于本身兴趣的考量。 两方面都是入门级水平。但时间给与我的期限却远远不够。 差不多半年之后,会踏上求职的高峰期。 在社会上谋求安身立命的一席之地。 略显遗憾的是:能力往往不怎么够,要学的其实非常的多。 曾经我陷入了无畏的迷茫,会陷入不知足的看文艺小说的地步。带来的结果,往往没有好转的特征,差不多会开始下一个恶性循环,甚至开始以为才华难以显现,事实
谢伟
2018/06/06
6130
从源码解析TreeMap
Single
2018/01/04
6250
从源码解析TreeMap
时间复杂度深度解析
对于学习算法的同志们,少不了对于时间复杂度的学习,在此对时间复杂度的学习进行记录,如有纰漏,尽请评论。
用户4196462
2022/02/06
2260
iOS开发之EventKit框架的应用
      iOS系统自带的Calendar应用非常强大,用户可以在其中添加日程事件,并且其提供了接口供其他应用进行调用,可以向日历中进行事件的读取和写入。
珲少
2019/07/01
4.1K0
iOS开发之EventKit框架的应用
iOS开发之CoreMotion框架的应用 原
      我们知道,现在智能手机手机的功能已经越来越强大。小小的手机中集成了众多的传感器配件。通过这些传感器可以获取到手机甚至用户的状态信息。
珲少
2019/03/12
1.6K0
iOS开发之CoreMotion框架的应用
                                                                            原
✨从异步讲起,时间,时间,请给函数以答案!
如果你能清晰准确地回答出这3个关于异步老生常谈的经典问题,可以跳过下一小节的释义。
掘金安东尼
2022/11/07
1.1K0
✨从异步讲起,时间,时间,请给函数以答案!
从源码解析LinkedList集合
本文介绍了LinkedList和ArrayList两个类,以及它们在Java中的实现和区别。LinkedList是双向链表,而ArrayList是动态数组。LinkedList在插入、删除、查找操作上效率比ArrayList高,但是访问效率低;而ArrayList正好相反。在具体实现上,LinkedList通过内部类Node来表示链表中的每个元素,而ArrayList通过一个动态数组来表示。
Single
2018/01/04
4520
从源码解析LinkedList集合
python解析照片拍摄时间整理图片
手机中拍摄照的照片和视频快爆了,想转移到PC端,并按时间建立文件夹存储到电脑中,本文主要介绍如何通过python获取手机拍摄图片的时间信息并存储。
languageX
2022/07/14
1.9K0

相似问题

Restkit -如何从NSDate Unix时间戳解析NSString?

24

从NSDate中剥离时间

31

从字符串解析NSDate

14

从NSDate解析NSString时出错

13

从NSDate获取时间返回nil

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文