我有一些类似的日期字符串:
2013-01-25 00:00:00 -0500
2013-01-22 00:00:00 -0700
2013-01-26 00:00:00 -0200
我想使用NSDateFormatter
使用这些类型的字符串创建NSDate
。我知道如何使用格式化程序来获取日期的第一部分(2013-01-25 00:00:00
),但我不知道如何指定偏移部分(-0500
,-0200
等) 。这是获取日期字符串开头的代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss"];
NSString *dateString = @"2013-01-25 00:00:00"; // <-------- Truncated ----
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"Date: %@", date);
如何使用-0500
部分?我尝试了SSSZ
,但它没有用(给了null
日期。)
答案 0 :(得分:9)
试试这个:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss ZZZ"];
NSString *dateString = @"2013-01-25 00:00:00 -0500";
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"Date: %@", date);
我明白了:
日期:2013-01-25 05:00:00 +0000
作为旁注,以下是所有日期格式的标准:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns