使用NSDateFormatter(-0500)指定时间偏移量

时间:2013-05-02 12:12:06

标签: ios cocoa time nsdateformatter offset

我有一些类似的日期字符串:

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日期。)

1 个答案:

答案 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