objective-c - 有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSD

如果我使用以下代码:

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 对象为空...

所以我的最终问题是如何从 SQL 数据库格式化 ISO8601 时间戳以使用,例如,NSDateFormatterMediumStyle 来返回“2010 年 1 月 1 日”?

最佳答案

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

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

解决办法: 使用 Peter Hosey 的 ISO8601DateFormatter,您可以从 here 下载它.

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;

关于objective-c - 有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSDate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201216/

相关文章:

objective-c - 对 block 进行类型定义是如何工作的

ios - 如何在 iPhone 上显示来自 API 的 HTML 文本?

objective-c - iOS:如何将 UIViewAnimationCurve 转换为 UIV

objective-c - 在 Objective C 中使用 extern

objective-c - 核心数据 "use scalar properties for prim

objective-c - [NSNull null] 和 nil 有什么区别?

objective-c - 如何编写 OS X Finder 插件

ios - 使用 Storyboard 的条件转场

objective-c - 尝试标记应用程序图标,但未获得用户标记应用程序的权限 : iOS 8 X

iphone - 将 NSDictionary 保存到 NSUserDefaults