为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种简单的方法将ISO8601时间戳转换为格式化的NSDate?

有没有一种简单的方法将ISO8601时间戳转换为格式化的NSDate?

料青山看我应如是 2019-08-13 09:54:37
有没有一种简单的方法将ISO8601时间戳转换为格式化的NSDate?如果我使用以下代码:NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];   [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm"];NSDate *myDate = [dateFormatter dateFromString:@"2010-01-28T15:22:23.863"];NSLog(@"%@", [dateFormatter stringFromDate:myDate]);它成功地转换为一个Date对象,但是,我似乎无法以任何其他方式格式化它yyyy-MM-dd'T'HH:mm,即记录的是什么2010-01-28T15:22:23如果我更改dateFormat以说[dateFormatter setDateFormat:@"yyyy-MMMM-d'T'HH:mm"];Date对象为null ...所以我的最终问题是如何格式化SQL数据库中的ISO8601时间戳,以便使用,例如,NSDateFormatterMediumStyle返回“2010年1月1日”?
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您需要另一个格式化程序来处理输出。把它放在你的代码之后:

NSDateFormatter *anotherDateFormatter = [[NSDateFormatter alloc] init];   [anotherDateFormatter setDateStyle:NSDateFormatterLongStyle];[anotherDateFormatter setTimeStyle:NSDateFormatterShortStyle];NSLog(@"%@", [anotherDateFormatter stringFromDate:myDate]);


查看完整回答
反对 回复 2019-08-13
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我有一个类似但稍微复杂的问题,我找到了一个非常简单的解决方案!

问题: 我的传入ISO8601日期如下所示:2006-06-14T11:06:00+02:00它们在末尾有一个时区偏移量。

解决方案: 使用Peter Hosey的ISO8601DateFormatter,您可以从这里下载。

ISO8601DateFormatter *formatter = [[ISO8601DateFormatter alloc] init];NSDate *theDate = [formatter dateFromString:dateString];[formatter release], formatter = nil;

ISO8601DateFormatter *formatter = [[ISO8601DateFormatter alloc] init];NSString *dateString = [formatter stringFromDate:[twitch dateTwitched]];[formatter release], formatter = nil;


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 816 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信