【发布时间】:2014-05-20 17:34:13
【问题描述】:
我有以下代码:
- (NSString *)
lastSeenDateString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ssZ"];
NSDate *date = [dateFormatter dateFromString:dateString];
NSString *result = [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle];
return result;
}
dateString 变量看起来像这样(我输出到日志以确保):2014-05-20T17:23:42.000Z
date 变量,当输出到日志时,显示:(null)
我尝试删除 setTimeZone 方法,将 setDateFormat 更改为许多不同的东西(“yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'” 、“yyyy-MM-dd HH:mm:ss”、“yyyy-MM-dd”等),但没有任何效果。无论我做什么,它都会返回 null。我查看了许多其他回答相同问题的 StackOverflow 问题,以及 Google 上的其他示例,我的代码似乎与公认的答案一致。然而,结果仍然是一个空的 NSDate 变量。
【问题讨论】:
-
应该是“...:mm:ss.SSSZ”
-
你真的应该学习如何自己解决这个问题。从 NSDateFormatter 的文档开始,您可以按照几个链接获取日期格式字符串的标准。研究那个文件。
标签: ios objective-c datetime nsdate nsdateformatter