有没有一种简单的方法将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]);
牛魔王的故事
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;
- 3 回答
- 0 关注
- 861 浏览
添加回答
举报
0/150
提交
取消